批处理文件 - 传递多个输入

时间:2016-05-03 17:20:06

标签: windows variables batch-file automation

我有一个我正在处理的批处理文件,它将接受用户输入并根据该输入信息执行操作。我的问题是,我不是一遍又一遍地运行文件而是逐个放入文件类型,而是如何将其写入用户可以放入多个选项的位置。 (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 个答案:

答案 0 :(得分:0)

您可以编写一个解析用户输入的循环。这是一种方法:

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)