bat文件将子文件夹中的文件移动到当前文件夹

时间:2014-08-27 23:57:59

标签: file batch-file directory move

我正在寻找一个.bat文件,它将子文件夹中的所有文件移动到父文件夹。

例:
C:/games/nintendo/N/gamename/gamename.iso

我想运行一个将该gamename.iso移动到文件夹N的文件:

C:/games/nintendo/N//gamename.iso

非常感谢你的帮助:_)

2 个答案:

答案 0 :(得分:0)

使用以下内容创建一个bat文件:

xcopy C:/ games / nintendo / N / gamename C:/ games / nintendo / N / s / e

答案 1 :(得分:0)

set root_folder=C:\games

for /f "tokens=1* delims=" %%G in ('dir %root_folder% /b /o:-n /s ^| findstr /i ".iso" ') do (
    move /y "%%G" "%%~dpG..\%%~nxG"
)

更新

以下是解释:
set root_folder=C:\games - 我们正在设置我们稍后要使用的变量;这是我们要开始扫描的根文件夹

for /f - 您可以通过在命令提示符中输入for /?或此LINK

来获取有关使用情况的文档

dir %root_folder% /b /o:-n /s - 我们使用/b为裸格式列出所有文件/文件夹和子文件夹; /o:-n降序排序; /s以递归方式向下走文件夹结构

^| findstr /i ".iso" - 我们通过|传递所有信息,然后查找名称中包含.iso的内容。请注意,必须使用转义字符^

do ( - 对于在此操作中提供输出的每个实例,执行以下操作:

move /y - 如有必要,移动并覆盖/y

%%G - 字符串,它是标准uptop的输出。

输出字符串的

%%~dpG - d = drive letterp = path

.. - 这是当前文件夹

上方的文件夹

\%%~nxG - n = filenamex = extension表示与输出匹配的文件。

以下是展开的内容(因此将文件复制到C:\games\nintendo\N\

move /y "C:\games\nintendo\N\gamename\gamename.iso" "C:\games\nintendo\N\gamename\..\\gamename.iso"