【问题标题】:How to replace spaces with dashes of folder names (in bulk) [closed]如何用文件夹名称的破折号替换空格(批量)[关闭]
【发布时间】:2013-10-15 14:16:24
【问题描述】:

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

目前:

我的文件夹

所有文件夹都需要变成:

我的文件夹

谢谢

【问题讨论】:

    标签: windows batch-file renaming


    【解决方案1】:

    使用这个批处理文件:

    @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!"
    )
    

    检查结果,如果一切正常,请在 MOVE 之前删除 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),因此您可以预览命令并检查结果。

    【讨论】:

    • 什么都没有发生,我把它保存在 bat 中,但文件夹仍然有空格
    • 您应该检查 bat 输出 - 然后,如果一切正常,请在 MOVE 之前删除 ECHO 以使其工作。正如答案中已经解释的那样。
    • 首先非常感谢您的帮助和时间
    • 这是我使用你给我的代码创建的文件不是'
    • 很抱歉它根本没有做任何事情所以请你看看它并告诉我应该做什么以及我做错了什么dl.dropboxusercontent.com/u/125658459/renamedash.bat
    【解决方案2】:

    这在这里有效。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      相关资源
      最近更新 更多