批处理命令在Notepad ++中打开某种类型的所有文件

时间:2014-12-17 12:02:17

标签: batch-file filesystems

我有以下批处理命令来打开dtd扩展名的文件。

REM Open all the static content files
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder1\File1.dtd"
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder1\File2.dtd"
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder2\File1.dtd"
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder2\File2.dtd"
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder3\File1.dtd"
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder3\File2.dtd"

如何更改此批处理命令以打开dtd文件夹下"D:\data"扩展名的所有文件?

我尝试了以下代码,但它不起作用

REM Open all the static content files
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\\*.dtd"

3 个答案:

答案 0 :(得分:9)

您可以使用FOR命令:

  

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

     

使用以[drive:]路径为根的目录树,执行FOR       树的每个目录中的语句。如果没有目录       在/ R之后指定规范,然后是当前目录       假定。如果set只是一个句点(。)字符,那么它       将枚举目录树。

在你的情况下,这应该有效:

FOR /R d:\data %a IN (*.dtd) DO "C:\Program Files (x86)\Notepad++\notepad++.exe" "%a"

如果需要从批处理文件

运行,请使用%%a

如果您想使用多个扩展程序,可以使用空格分隔

FOR /R d:\data %a IN (*.dtd *.xml *.xslt) DO "C:\Program Files (x86)\Notepad++\notepad++.exe" "%a"

答案 1 :(得分:2)

您可能还希望以这种方式编写批处理文件:

set command=C:\Program Files (x86)\Notepad++\notepad++.exe
FOR /R d:\data %%a IN (*.dtd) DO %command% %%a

答案 2 :(得分:0)

如果您不想打开上一个会话中的文件,请添加-nosession参数 (此处为dtd文件中.bat扩展名的示例)

for /R %%x in (*.dtd) do (
    start "" "C:\Program Files\Notepad++\notepad++.exe" -nosession "%%x"
)