如何在一批没有一致性结构的文档中删除连字符"-"。
eg
1XXXXXX RevX - XXX
1XXXXXX RevX (this file dont have -)
1XXXXXX RevX - XXXXX
1XXXXXX RevXX - XXXXX
intended output
1XXXXXX RevX XXX
1XXXXXX RevX
1XXXXXX RevX XXXXX
1XXXXXX RevXX XXXXX
我已经尝试过ren "*-*" "*/*"
但它不起作用。请指教。谢谢
如前所述,您不能简单地将ren
与通配符一起使用.
因此,您必须自己处理每个文件。cmd
提供了执行此操作的for
循环:
for %%a in (*-*) do call :removedash "%%a"
goto :eof
:removedash
set "name=%~n1" &REM take name only
set "name=%name:-=%" &REM remove dashes
set "name=%name: = %" &REM replace double-spaces with single-space
ECHO ren "%~1" "%name%%~x1"
注意:如果您在破折号之前和之后都有一个空格,则删除破折号会导致两个连续的空格,您可能不希望这样做,因此我们用单个空格替换它们。我们可以用<space>
替换<space><dash><space>
,但我不确定我们是否可以信任破折号周围有空格。
注意:出于安全原因,我"撤防"了ren
命令。当您确定ECHO
可以满足您的需求时,请将其删除。