用于循环的Windows bat脚本(如果子字符串为字符串)
我试图修改文件列表上的for循环,并在其中添加检查文件名中是否存在子字符串:用于循环的Windows bat脚本(如果子字符串为字符串),windows,batch-file,cmd,Windows,Batch File,Cmd,我试图修改文件列表上的for循环,并在其中添加检查文件名中是否存在子字符串: for/r%%i in(*)do echo%%i 如何修改上面的windows bat脚本以检查文件名中是否存在子字符串?我相信您正在查找以下内容: for /r %i in (*sub_string*) do echo %i 或者,如果您使用的是批处理文件: for /r %%i in (*sub_string*) do echo %%i 以下是我的目录结构: 运行以下命令的输出: for /r %i in (
for/r%%i in(*)do echo%%i
如何修改上面的windows bat脚本以检查文件名中是否存在子字符串?我相信您正在查找以下内容:
for /r %i in (*sub_string*) do echo %i
或者,如果您使用的是批处理文件:
for /r %%i in (*sub_string*) do echo %%i
以下是我的目录结构:
运行以下命令的输出:
for /r %i in (*test*) do echo %i
详情如下:
C:\Users\czimmerman\Development\CMDTest>for /r %i in (*test*) do echo %i
C:\Users\czimmerman\Development\CMDTest>echo C:\Users\czimmerman\Development\CMD
Test\test1.txt
C:\Users\czimmerman\Development\CMDTest\test1.txt
C:\Users\czimmerman\Development\CMDTest>echo C:\Users\czimmerman\Development\CMD
Test\test2.txt
C:\Users\czimmerman\Development\CMDTest\test2.txt
C:\Users\czimmerman\Development\CMDTest>
请注意,没有列出任何
notthisone.txt
。我相信您正在查找以下内容:
for /r %i in (*sub_string*) do echo %i
或者,如果您使用的是批处理文件:
for /r %%i in (*sub_string*) do echo %%i
以下是我的目录结构:
运行以下命令的输出:
for /r %i in (*test*) do echo %i
详情如下:
C:\Users\czimmerman\Development\CMDTest>for /r %i in (*test*) do echo %i
C:\Users\czimmerman\Development\CMDTest>echo C:\Users\czimmerman\Development\CMD
Test\test1.txt
C:\Users\czimmerman\Development\CMDTest\test1.txt
C:\Users\czimmerman\Development\CMDTest>echo C:\Users\czimmerman\Development\CMD
Test\test2.txt
C:\Users\czimmerman\Development\CMDTest\test2.txt
C:\Users\czimmerman\Development\CMDTest>
请注意,没有列出
notthisone.txt
。一种方法是使用字符串替换(查看或了解更多详细信息)因为它发生在
for
循环中,所以必须考虑延迟扩展()
例如,以下代码过滤包含“文本”的文件名,并丢弃其余文件名(找到的每个文件名都打印在开头)
代码.bat:
@echo关闭
延迟扩展
对于(*)中的/r%%f,请执行以下操作(
找到回显:%%f
设置当前文件=%%f
如果不是“!\u当前\u文件:文本=!”=“!\u当前\u文件!”(
回声过滤:当前文件!
)
)
输出:
一种方法是使用字符串替换(检查或获取更多详细信息)
因为它发生在
for
循环中,所以必须考虑延迟扩展()
例如,以下代码过滤包含“文本”的文件名,并丢弃其余文件名(找到的每个文件名都打印在开头)
代码.bat:
@echo关闭
延迟扩展
对于(*)中的/r%%f,请执行以下操作(
找到回显:%%f
设置当前文件=%%f
如果不是“!\u当前\u文件:文本=!”=“!\u当前\u文件!”(
回声过滤:当前文件!
)
)
输出: