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