首页 > 解决方案 > 重命名子文件夹中的文件并通过批处理覆盖

问题描述

这是当前代码:

@ECHO OFF

ECHO.
REM rename 
REN "H:\DIRECTORY with Space\folder1\*.*" "H:\DIRECTORY with Space\Folder1\TEST_*.*"

ECHO.
DIR nofile || (PAUSE && EXIT /B 1)

我也尝试过 move / y

move /y "H:\DIRECTORY with Space\folder1\*.*" "H:\DIRECTORY with Space\folder1\TEST_*.*"

两者都不起作用(语法错误或找不到目录)。基本上试图用前缀(“Test_”)重命名子文件夹中的所有内容并覆盖任何重复项。

标签: batch-fileoverwritebatch-rename

解决方案


试试这个。我已经评论了代码以帮助更好地解释它是如何工作的。

@ECHO OFF

:: Changes to a directory and saves previous directory to go back to
PUSHD "H:\DIRECTORY with Space\folder1\"

:: Critical that you USE this instead of a normal FOR command.
:: A normal FOR command may attempt to rename a file twice.
FOR /F "delims=" %%G IN ('DIR /a-d /b *.*') do rename "%%~G" "TEST_%%~G"

:: Goes back to the previous directory.
POPD

推荐阅读