命令提示符替换文件名中间的字符串

GTS*_*Joe 2 windows cmd rename

我有一个包含数百个文件的文件夹,其格式如下:

20210322 - Filename description.txt
20210321 - Filename description.txt
20210320 - Filename description.txt
20210319 - Filename description.txt
20210318 - Filename description.txt
...
Run Code Online (Sandbox Code Playgroud)

使用 Windows 命令提示符,如何将它们重命名为以下格式:

20210322 Filename description.txt
20210321 Filename description.txt
20210320 Filename description.txt
20210319 Filename description.txt
20210318 Filename description.txt
...
Run Code Online (Sandbox Code Playgroud)

换句话说就是替换,将“-”替换为“”。

过去我用过

rename "IMG_*.jpg" "////*.jpg"
Run Code Online (Sandbox Code Playgroud)

从文件名开头删除“IMG_”。我尝试做类似的事情,但没有成功:

rename "* - *.txt" "*/ /.txt"
Run Code Online (Sandbox Code Playgroud)

GTS*_*Joe 7

我找到了一个更适合我的解决方案。一行,无需批处理文件。使用 Windows Power Shell,输入:

Get-ChildItem -Recurse | ` Where-Object { $_.Name -match " - " } | ` Rename-Item -NewName { $_.Name -replace " - ", " " }
Run Code Online (Sandbox Code Playgroud)

上面的命令将替换所有文件名中的给定文本,包括子文件夹和子文件(递归地)。

我希望它能够帮助别人。