For loop 在搜索.pst文件时,当文件到达隐藏的快捷方式文件夹时,它将保持循环
下面的命令创建了一个无限循环,这不是我想要的,因为我正在迭代文件,它需要在某个时候结束 以下是我所拥有的:For loop 在搜索.pst文件时,当文件到达隐藏的快捷方式文件夹时,它将保持循环,for-loop,batch-file,infinite-loop,filepath,shortcuts,For Loop,Batch File,Infinite Loop,Filepath,Shortcuts,下面的命令创建了一个无限循环,这不是我想要的,因为我正在迭代文件,它需要在某个时候结束 以下是我所拥有的: cd C:\ FOR /R %i IN (*.pst) do @echo %i 查看发生的情况是,当它到达AppData并找到.pst(在AppData\Local\Microsoft\Outlook中)时,AppData\Local中有一个名为“Application Data”的快捷文件夹,它会循环回AppData\Local,但会不断将其名称添加到地址,如下所示: %AppData
cd C:\
FOR /R %i IN (*.pst) do @echo %i
查看发生的情况是,当它到达AppData并找到.pst(在AppData\Local\Microsoft\Outlook中)时,AppData\Local中有一个名为“Application Data”的快捷文件夹,它会循环回AppData\Local,但会不断将其名称添加到地址,如下所示:
%AppData%\Local\Application Data\Application Data\Application Data\Microsoft\Outlook\%filename%.pst
我可以在代码中添加什么来防止循环,或者完全忽略快捷方式,以便循环在找到我需要的所有文件时结束,这会更好
-----------编辑-------------
这似乎做了类似的事情:
dir /s /b *.pst
好的,我建议您对文件使用
,
,如果您使用的是windows 7,这些文件应该在您的计算机上。有关详细信息,请键入文件/?。试试这个:
forfiles /p "C:\" /s /m "*.pst" /c "cmd /c (Echo @path)"
这应该很有效。我正在寻找一个for/r
循环来实现这一点的方法。它可能涉及一个dir
签入/r/d。告诉我这是否适合你
Mona您可以使用
DIR/A-L
筛选出重新分析点
但是,使用DIR/A-L/S
也不起作用,因为重分析点内容不是重分析点,所以请尝试以下方法:
使用以下内容代替的:
FindFiles.bat *.pst c:\
使用以下内容创建FindFiles.bat
文件:
@ECHO OFF
:GetDirFiles %1=Wildcard %2=Path
FOR %%f IN ("%~f2\%~1") DO ECHO %%~ff
FOR /F "DELIMS=" %%d IN ('DIR /B /AD-L "%~f2"') DO CALL :GetDirFiles %1 "%~2\%%d"
这将递归地获取所有不是重分析点的目录,并为每个目录返回匹配模式的项目。以前帮助我使用批处理文件循环问题。
的。好的,我所做的是将所有代码保存到findfiles.bat。第一个是返回一个dir/b\。第二个原因是不给我任何东西。我不太确定,可能是我做错了什么。如果我将/s添加到('dir/b“%~2\%~1”),我将再次通过所有快捷方式。请选中“编辑”。Ideia正在执行“手动”/S
,忽略重新分析点。编辑只是回显在手动终止批处理之前未找到的文件。