Пакетный Файл-Передача Нескольких Входов

У меня есть пакетный файл, над которым я работаю, который примет пользовательский ввод и выполнит действие на основе этой входной информации. Мой вопрос заключается в том, вместо того, чтобы запускать файл снова и снова, вводя тип файла один за другим, как я могу записать его туда, где пользователь может ввести несколько параметров. (file1, file2, file3). Вот как это выглядит сейчас:

set /p FileType=Enter file type here: (this is where I would like the user to be able to put in more than just one file type if needed.)

Спасибо!

1 ответ

  1. Можно написать цикл, который анализирует вводимые пользователем данные. Это один из способов сделать это:

    set /p "FileType=Enter file type(s) here (ex: txt, pdf, docx): "
    for /f "tokens=1-3 delims=, " %%A in ("%FileType%") do (
        set ftA=%%A
        set ftB=%%B
        set ftC=%%C
    )
    dir *.%ftA% *.%ftB% *.%ftC%
    

    Это имеет свои ограничения. Прежде всего, это не очень масштабируемый. Необходимо добавить в код дополнительные переменные (ftD,ftE и т.д.) смогите отрегулировать больше чем 3 параметра. Далее, как было написано выше, если задано менее 3 параметров, остальные переменные по-прежнему задаются, но с пустым значением. Это означает, что вы должны проверить, что переменная имеет значение (if not "%ftC%"==""), прежде чем можно будет надежно использовать его.

    Если вам не нужно на самом деле передать пользовательский ввод в качестве переменной, чтобы использовать позже, вы можете петля через пользовательский ввод непосредственно как @SomethingDark предлагает.

    set /p "FileType=Enter file type(s) here (ex: txt pdf docx): "
    for %%A in (%FileType%) do (dir *.%%A)