我已经创建了一个备份批处理文件,它扫描文件夹中的文件,并将它们移动到预先制作的0字节目录克隆中的0字节副本上。在查找和移动2000+文件以及从它们重建树的大部分过程中,它工作得很好,但是我发现有几个名字被吃掉了,这会导致多个文件被移动到一个单一的0字节文件中。
@ECHO OFF
@SETLOCAL enableextensions disabledelayedexpansion
set "SDPath=MiSTer_SD"
set "backupPath=_ROOT"
for /R "%SDPath%" %%G in (*.*) do (
if %%~zG EQU 0 (
for /R %backupPath% %%g in ("*%%~nxG") do (
MOVE "%%g" "%%G" )
)
)当事情出问题时,输出看起来是这样的
D:\_WORK\TOOLS\MiSTer_REBUILD>(if 0 EQU 0 (for /R "_ROOT" %g in ("*Beyblade (USA).chd") do (MOVE "%g" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Beyblade\Beyblade (USA).chd" ) ) )
D:\_WORK\TOOLS\MiSTer_REBUILD>(MOVE "D:\_WORK\TOOLS\MiSTer_REBUILD\_ROOT\Beyblade (USA).chd" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Beyblade\Beyblade (USA).chd" )
1 file(s) moved.
D:\_WORK\TOOLS\MiSTer_REBUILD>(if 0 EQU 0 (for /R "_ROOT" %g in ("*Blade (USA).chd") do (MOVE "%g" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Blade\Blade (USA).chd" ) ) )
D:\_WORK\TOOLS\MiSTer_REBUILD>(MOVE "D:\_WORK\TOOLS\MiSTer_REBUILD\_ROOT\Blade (USA).chd" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Blade\Blade (USA).chd" )
1 file(s) moved.
D:\_WORK\TOOLS\MiSTer_REBUILD>(MOVE "D:\_WORK\TOOLS\MiSTer_REBUILD\_ROOT\Bushido Blade (USA).chd" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Blade\Blade (USA).chd" )
1 file(s) moved.
D:\_WORK\TOOLS\MiSTer_REBUILD>(if 0 EQU 0 (for /R "_ROOT" %g in ("*Boxing (USA).chd") do (MOVE "%g" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Boxing\Boxing (USA).chd" ) ) )
D:\_WORK\TOOLS\MiSTer_REBUILD>(MOVE "D:\_WORK\TOOLS\MiSTer_REBUILD\_ROOT\Boxing (USA).chd" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Boxing\Boxing (USA).chd" )
1 file(s) moved.
D:\_WORK\TOOLS\MiSTer_REBUILD>(MOVE "D:\_WORK\TOOLS\MiSTer_REBUILD\_ROOT\HBO Boxing (USA).chd" "D:\_WORK\TOOLS\MiSTer_REBUILD\MiSTer_SD\Boxing\Boxing (USA).chd" )
1 file(s) moved.我知道这与我的写作方式有关(“*%~nxG”),但我不知道如何修复它。
我一辈子都搞不懂它为什么把几个像名字一样的源文件组合在一起,用它们覆盖一个单一的目标文件?任何帮助都是非常感谢的,甚至对整个备份想法采取不同的方法。
发布于 2022-03-08 20:15:16
for /R %backupPath% %%g in ("*%%~nxG") do (说明:对于以%%~nxG结尾的所有文件
Blade (USA).chd和Bushido Blade (USA).chd都符合这个标准,因此两者都将被移动。
也许,如果要删除*,它将完成所需的任务。
https://stackoverflow.com/questions/71400336
复制相似问题