首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >备份批吃某些名称的第一部分

备份批吃某些名称的第一部分
EN

Stack Overflow用户
提问于 2022-03-08 19:14:47
回答 1查看 36关注 0票数 0

我已经创建了一个备份批处理文件,它扫描文件夹中的文件,并将它们移动到预先制作的0字节目录克隆中的0字节副本上。在查找和移动2000+文件以及从它们重建树的大部分过程中,它工作得很好,但是我发现有几个名字被吃掉了,这会导致多个文件被移动到一个单一的0字节文件中。

代码语言:javascript
复制
    @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" )
    )
)

当事情出问题时,输出看起来是这样的

代码语言:javascript
复制
    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”),但我不知道如何修复它。

我一辈子都搞不懂它为什么把几个像名字一样的源文件组合在一起,用它们覆盖一个单一的目标文件?任何帮助都是非常感谢的,甚至对整个备份想法采取不同的方法。

EN

回答 1

Stack Overflow用户

发布于 2022-03-08 20:15:16

代码语言:javascript
复制
    for /R %backupPath% %%g in ("*%%~nxG") do (

说明:对于以%%~nxG结尾的所有文件

Blade (USA).chdBushido Blade (USA).chd都符合这个标准,因此两者都将被移动。

也许,如果要删除*,它将完成所需的任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71400336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档