【发布时间】:2016-05-20 04:19:20
【问题描述】:
如图所示,我有带有“。”的文件夹。在他们中,我想使用 CMD 用“_”替换这些是否有方法可以做到这一点。
【问题讨论】:
标签: cmd
如图所示,我有带有“。”的文件夹。在他们中,我想使用 CMD 用“_”替换这些是否有方法可以做到这一点。
【问题讨论】:
标签: cmd
cmd.exe shell 脚本是比@echo off 更糟糕的方法:-)
但是没关系。
您可以使用增强的 shell 命令集来替换变量中的字符:
set DUH=FBB
echo %DUH:B=O% -> FOO
因此,对于您的问题,您需要读取所有文件夹并将它们放入一个变量中,这样您就可以替换 .=_ 然后重命名。
第一批:rena.cmd 遍历您的文件夹
@echo off
for /D %%i in ( *.* ) do call rena2.cmd %%i
第二批:rena2.cmd 处理重命名
@echo off
setlocal enableextensions
setlocal enabledelayedexpansion
set TONAME=%~1
move %1 "%TONAME:.=_%"
exit /B
这可以在一个脚本中完成,随意摆弄它,我不会:-)
【讨论】:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir\t w o"
FOR /f "delims=" %%a IN (
'dir /b /ad "%sourcedir%\*.*" '
) DO (
SET "dirname=%%a"
SET "dirname=!dirname:.=_!"
IF "!dirname!" neq "%%a" ECHO(REN "%sourcedir%\%%a" "!dirname!"
)
GOTO :EOF
您需要更改sourcedir 的设置以适应您的情况。
所需的 REN 命令仅用于测试目的ECHOed。 验证命令正确后,将ECHO(REN 更改为REN 以实际重命名文件。
Dimply 执行目录列表,将 . 更改为 _,如果进行了更改,请执行重命名。
【讨论】: