我在Visual Studio工具链中使用了一个Windows批处理文件,它在特定目录中创建了一个文件列表,然后使用"findstr"将此列表缩小到只包含名称包含特定字符串的文件; 然后对这些文件做一些工作.
dir /b \mypath\*.wav >wavRawList.txt
findstr /b /v "DesiredString" wavRawList.txt >wavListWithDesiredString.txt
for /f %%a in (wavListWithDesiredString.txt) do (
[... do some stuff ...]
)
Run Code Online (Sandbox Code Playgroud)
Visual Studio经常报告来自这个批处理文件的错误,我认为这是因为wavListWithDesiredString.txt经常最终成为长度为0的文件.是否有各种各样的"if exists wavListWithDesiredString.txt"而不是"存在"我可以替换命令意味着"如果它存在且文件长度大于0"?
或多或少的内联方式,使用for:
for %%x in (wavListWithDesiredString.txt) do if not %%~zx==0 (
...
)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用子程序:
:size
set SIZE=%~z1
goto :eof
Run Code Online (Sandbox Code Playgroud)
您可以这样调用:
call :size wavListWithDesiredString.txt
if not %SIZE%==0 ...
Run Code Online (Sandbox Code Playgroud)