我有以下批处理命令来打开扩展名为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"如何将此批处理命令更改为打开"D:\data"文件夹下所有扩展名为dtd的文件?
我尝试了下面的代码,但它不能工作
REM Open all the static content files
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\\*.dtd"发布于 2014-12-17 20:12:55
您可以使用FOR命令:
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
遍历以drive:path为根的目录树,在树的每个目录中执行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"发布于 2017-01-24 14:49:12
您可能还希望以这种方式编写批处理文件:
set command=C:\Program Files (x86)\Notepad++\notepad++.exe
FOR /R d:\data %%a IN (*.dtd) DO %command% %%a发布于 2018-01-30 17:38:54
如果不希望打开前一个会话中的文件,则添加-nosession参数。
(此处以.bat文件中的dtd扩展名为例)
for /R %%x in (*.dtd) do (
start "" "C:\Program Files\Notepad++\notepad++.exe" -nosession "%%x"
)https://stackoverflow.com/questions/27525175
复制相似问题