我有一个如下所示的批处理文件:
IF EXIST icon.ico (
attrib -S -H -R desktop.ini
echo f | xcopy /H /Y "%~dp0desktop.ini.txt" desktop.ini
attrib +S +H +A desktop.ini
)
这完全满足了我的需求。我的问题是如何让它在所有子文件夹中运行?
答案1
如何在批处理文件的所有子目录中运行命令?
您可以用于for /r
此。
使用以下批处理文件:
for /r "starting_directory" %%a in (.) do (
pushd %%a
if exist icon.ico (
attrib -s -h -r desktop.ini
echo f | xcopy /h /y "%~dp0desktop.ini.txt" desktop.ini
attrib +s +h +a desktop.ini
)
popd
)
for /r – 循环遍历文件(递归子文件夹)
句法
FOR /R [[drive:]path] %%parameter IN (set) DO command
钥匙
drive:path
:文件所在的文件夹树。
set
:一组或多组文件。必须使用通配符。如果 (set) 是句点字符 (.),则 FOR 将循环遍历每个文件夹。
command
:要执行的命令,包括任何命令行参数。%%parameter`:可替换参数:在批处理文件中使用 %%G(在命令行上 %G)
来源对于/r- 循环遍历文件(递归子文件夹)。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 对于/r- 循环遍历文件(递归子文件夹)。