我从安装了Windows 7的硬盘中恢复了文件 现在我在一个文件夹中一团糟,有成千上万的文件和文件夹,我真的不太了解批量编码,但通过观看一些 youtube 视频,我可以进入下面的下一个,但该批处理文件只在我执行批处理的当前文件夹中查找文件,我希望它查找该文件夹中的文件夹等等。 对不起,我的英语不好
@echo off
move /y "*.xml" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultxml"
move /y "*.pdf" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultdocumentos"
move /y "*.cat" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultcat"
move /y "*.dll" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultdll"
看看这个:
@echo off
for /R %temp% %%f in (*.*) do (
echo %%f )
在那里,您可以看到带有参数"/R"的 for 循环。"/R"使循环递归,以便也查看子文件夹。
@echo off
SETLOCAL
for /D /R %%a in (*) do (
pushd "%%a"
move /y "*.xml" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultxml"
move /y "*.pdf" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultdocumentos"
move /y "*.cat" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultcat"
move /y "*.dll" "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan resultdll"
popd
)
这应该在源中的所有目录中执行一系列命令。
SETLOCAL
是可选的 - 它确保在浴池结束时丢弃对环境的任何更改。在这种情况下没有,但无论如何,这是常见的做法。
for /d
指令将每个与掩码匹配的目录名依次分配给%%a
*
。pushd
临时将默认目录设置为该名称,执行move
指令,popd
恢复原始目录。
但要小心 - 请记住,如果多次找到任何文件x.ext
,则将移动具有该名称的最后一个文件,替换任何其他文件。
也许
xcopy /s *.xml "D:backUP_arquiRecovered data 03-10 20_23_41Deep Scan result"
可能会有所帮助。它将.xml
文件从源复制到目标,在目标目录下构建与源目录下相同的目录结构。这样,您将拥有原始文件的副本,以防名称重复。显然,您需要为所需的每种文件类型重复该指令。