使用CMD重命名窗口文件



如何在一批没有一致性结构的文档中删除连字符"-"。

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可以满足您的需求时,请将其删除。

最新更新