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

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

问题描述:

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

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

我想运行,将其gamename.iso移动到文件夹N到是一个文件:

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

感谢这么多的帮助:__)

+0

搜索在线...但没有什么我需要什么:(我对代码没有任何线索,所以我想我会问到这里的人谁实际上知道:) – Juan71287 2014-08-28 00:21:24

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 - 字符串,它是来自标准的输出。

%%~dpG - d = drive letter,输出字符串

..p = 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" 
+0

请尝试解释更多有关如何以及为什么这项工作 – Markasoftware 2014-08-28 01:12:10

+0

@Markasoftware加入 – Alex 2014-08-28 01:45:49

+0

谢谢这太棒了:)! – Juan71287 2014-08-28 11:28:03

创建具有以下一个bat文件:

XCOPY C:/游戏/任天堂/ N/gamename C:/游戏/任天堂/ N/S/E