Windows 如何制作一个批处理脚本,在c中递归地查找文件.bat?

Windows 如何制作一个批处理脚本,在c中递归地查找文件.bat?,windows,batch-file,Windows,Batch File,我是批处理脚本的新手,我正在尝试学习如何创建一个可以递归地遍历文件夹的脚本,如果创建了脚本,请给出路径,如果不回显简单的消息。 我从这里开始: @echo关闭 对于/f%%f in('dir bucle.bat/s/b'),执行@echo%f%~tf 暂停 出口 但是我有点卡住了。试试: @echo off for /f %%f in ('dir bucle.bat /s/b') do @echo %%f %%~tf pause exit 要仅回显路径,请执行以下操作: @echo of

我是批处理脚本的新手,我正在尝试学习如何创建一个可以递归地遍历文件夹的脚本,如果创建了脚本,请给出路径,如果不回显简单的消息。 我从这里开始:

@echo关闭
对于/f%%f in('dir bucle.bat/s/b'),执行@echo%f%~tf
暂停
出口
但是我有点卡住了。

试试:

@echo off
for /f %%f in ('dir bucle.bat /s/b') do @echo %%f  %%~tf
pause
exit 
要仅回显路径,请执行以下操作:

@echo off
for /f %%f in ('dir bucle.bat /s/b') do @echo %%f
pause
exit 
您还可以使用
where
命令:
最后的
exit
命令是不必要的…

注意:您的所有代码都与此相同:
dir bucle.bat/S/b

您正在使用

for
命令来处理
dir
命令的输出。只是为了找到文件,你不需要所有这些。简化

dir c:\bucle.bat /s /b 

这将搜索文件,找到时显示完整路径,如果未找到,将回显错误消息。

表示原始代码中缺少的元素:

@echo off
for /f "delims=" %%f in ('dir bucle.bat /s/b') do @echo %%f  %%~tf
rem    ↑↑↑↑↑↑↑↑↑                                        ↑↑   ↑↑
pause
  • “delims=“
    ”要正确处理带有空格的路径
  • %%f
    -循环变量
您可以指定递归搜索的起始目录:

for /f "delims=" %%f in ('dir C:\myfolder\bucle.bat /s/b') do @echo %%f  %%~tf
甚至

for /f "delims=" %%f in ('dir C:\bucle.bat /s/b') do @echo %%f  %%~tf
将给出文件的“上次修改”日期/时间。在你的帖子里你说你只需要路径。是否还需要文件的“上次修改”日期/时间属性?