遍历目录结构并将具有某些扩展名的文件向上移动一级

时间:2017-05-11 10:43:02

标签: batch-file windows-7

我尝试递归遍历文件夹并向上移动一些文件。例如PDF& DOC。 文件夹的结构是: 文件夹1 - >文件夹2->文件夹3 - >文件夹(文件) - > * .doc,文件夹(mp3) - > * .MP3。

我需要像这样改变它: 文件夹1 - >文件夹2->文件夹3 - >文件夹(doc),*。doc,文件夹(mp3),* .mp3。

所以我有很多这样的文件夹。并且手动执行此操作是不可能的。

我尝试制作脚本: V1.0

For /R %%G in (*.doc,*.mp3) do move %%G ../

1.1版

For /R %%G in (*.doc,*.mp3) do move %%~nxG ../

1.2

For /R %%G in (*.doc,*.mp3) do (
set B=%%~nxG
move %%B  ../

但它不起作用。 我做错了什么?

如果我手动执行此操作:

CD文件夹1
CD文件夹2
CD文件夹3
CD文件夹(doc)
MOVE * .doc ../

这是有效的!

我将不胜感激任何建议!

1 个答案:

答案 0 :(得分:0)

For /R %%G in (*.doc,*.mp3) do move "%%G" "%%~PG.."

请注意,您的..引用指定 当前目录的父级,而不是每个文件的父级! for /R命令更改当前目录。