Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 处理每个子目录中的每个文件_Windows_Batch File_Windows 7 X64 - Fatal编程技术网

Windows 处理每个子目录中的每个文件

Windows 处理每个子目录中的每个文件,windows,batch-file,windows-7-x64,Windows,Batch File,Windows 7 X64,可能重复: 有几个问题会问如何使用批处理脚本进入子目录,但大多数情况下,它们只是列出文件或执行一些我在本例中不需要的其他相当复杂的操作。 我有CLI程序,我想处理当前目录所有子目录中的每个*.dat文件。它不必包括home目录。我非常确信,使用/r可以用一种简单的方式完成这项工作,但我所有的试验都以错误告终。例如,我试过: for /r path %%var in (*.dat) do process.exe -8 %%var 我得到的只是一个语法错误,我不知道为什么。成批的变量是一个字母

可能重复:

有几个问题会问如何使用批处理脚本进入子目录,但大多数情况下,它们只是列出文件或执行一些我在本例中不需要的其他相当复杂的操作。 我有CLI程序,我想处理当前目录所有子目录中的每个*.dat文件。它不必包括home目录。我非常确信,使用/r可以用一种简单的方式完成这项工作,但我所有的试验都以错误告终。例如,我试过:

for /r path %%var in (*.dat) do process.exe -8 %%var

我得到的只是一个语法错误,我不知道为什么。

成批的变量是一个字母

for /r path %%v in (*.dat) do process.exe -8 %%v
例如,此批处理类型包含批处理目录和子目录中每个
*.dat
文件的内容

for /r "%~dp0" %%v in (*.dat) do type "%%v"

批处理中的变量为一个字母

for /r path %%v in (*.dat) do process.exe -8 %%v
例如,此批处理类型包含批处理目录和子目录中每个
*.dat
文件的内容

for /r "%~dp0" %%v in (*.dat) do type "%%v"

您的问题是变量名的大小写-它们必须是单个字符,并且区分大小写

当用作程序参数时,还应引用变量,因为文件名可能包含空格或特殊字符

如果要递归处理当前目录中的所有.dat文件,则/R选项不需要路径说明符

for /r %%F in (*.dat) do process.exe -8 "%%F"
您可以从命令行运行上述命令,但只使用一个%

for /r %F in (*.dat) do process.exe -8 "%F"

您的问题是变量名的大小写-它们必须是单个字符,并且区分大小写

当用作程序参数时,还应引用变量,因为文件名可能包含空格或特殊字符

如果要递归处理当前目录中的所有.dat文件,则/R选项不需要路径说明符

for /r %%F in (*.dat) do process.exe -8 "%%F"
您可以从命令行运行上述命令,但只使用一个%

for /r %F in (*.dat) do process.exe -8 "%F"

啊,有时候答案很简单。非常感谢。啊,有时候答案很简单。非常感谢。