Windows 如何将空格替换为文件夹名称的破折号(批量)

Windows 如何将空格替换为文件夹名称的破折号(批量),windows,batch-file,renaming,Windows,Batch File,Renaming,如何在Windows server 2008中用数千个文件夹的破折号批量替换空格 目前: 我的文件夹 所有文件夹都需要成为: 我的文件夹 谢谢使用此批处理文件: @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION FOR /D /R %%i IN (*.*) DO ( SET "n=%%~nxi" SET n=!n: =-! IF NOT "!n!" == "%%~nxi" ECHO MOVE "%%~i" "%%~dpi!n!" ) 检

如何在Windows server 2008中用数千个文件夹的破折号批量替换空格

目前:

我的文件夹

所有文件夹都需要成为:

我的文件夹

谢谢使用此批处理文件:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /D /R %%i IN (*.*) DO (
    SET "n=%%~nxi"
    SET n=!n: =-!
    IF NOT "!n!" == "%%~nxi" ECHO MOVE "%%~i" "%%~dpi!n!"
)
检查结果,如果一切正常,请在移动之前删除
ECHO

编辑:交互式版本:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET k=
FOR /D /R %%i IN (*.*) DO (
    SET "n=%%~nxi"
    SET n=!n: =-!
    IF NOT "!n!" == "%%~nxi" (
        ECHO "%%~i" =^> "!n!"
        IF /I NOT "!k!"=="A" SET /P k=[Y]es/[N]o/[A]ll]/[C]ancel?
        IF /I "!k!"=="C" GOTO :END
        IF /I "!k!"=="Y" MOVE "%%~i" "%%~dpi!n!"
        IF /I "!k!"=="A" MOVE "%%~i" "%%~dpi!n!"
    )
)
:END
PAUSE
测试这批。它将在任何重命名之前询问(除非您输入A),以便您可以预览命令并检查结果。

这在这里起作用

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /D /R %%i IN (*) DO (
    SET "n=%%~nxi"
    REN "%%i" "!n: =-!"
)

什么也没发生,我把它保存在bat中,但文件夹仍然有空间。你应该检查bat输出-然后,如果一切正常,在移动之前移除ECHO使其工作。首先,非常感谢您的帮助和时间这是我用您给我的代码创建的文件,非常抱歉,它根本没有任何作用,请您看一下,告诉我应该做什么,我做错了什么