Nic*_*ahn 22 windows batch-file renaming
如何在Windows中批量删除数千个文件中的空格(不能用下划线替换)?我可以从DOS命令执行此操作吗?
目前:
file one.mp3
file two.mp3
Run Code Online (Sandbox Code Playgroud)
所有文件都需要成为:
fileone.mp3
filetwo.mp3
Run Code Online (Sandbox Code Playgroud)
dbe*_*ham 81
这是一个脚本,可以有效地批量重命名文件,从名称中剥离所有空格.
:renameNoSpace [/R] [FolderPath]
@echo off
setlocal disableDelayedExpansion
if /i "%~1"=="/R" (
set "forOption=%~1 %2"
set "inPath="
) else (
set "forOption="
if "%~1" neq "" (set "inPath=%~1\") else set "inPath="
)
for %forOption% %%F in ("%inPath%* *") do (
if /i "%~f0" neq "%%~fF" (
set "folder=%%~dpF"
set "file=%%~nxF"
setlocal enableDelayedExpansion
echo ren "!folder!!file!" "!file: =!"
ren "!folder!!file!" "!file: =!"
endlocal
)
)
Run Code Online (Sandbox Code Playgroud)
假设脚本名为renameNoSpace.bat
renameNoSpace :(无参数)重命名当前目录中的文件
renameNoSpace /R :重命名以当前目录为根的文件夹树中的文件
renameNoSpace myFolder :重命名当前目录中的"myFolder"目录中的文件.
renameNoSpace "c:\my folder\":重命名指定路径中的文件.使用引号是因为路径包含空格.
renameNoSpace /R c:\ :重命名C:驱动器上的所有文件.
小智 21
在 Windows 中:
小智 8
创建一个powershell文件 - *.ps1扩展名
写这段代码:
dir |
Where-Object { $_.name.Contains(" ") } |
Rename-Item -NewName { $_.name -replace " ","" }
Run Code Online (Sandbox Code Playgroud)
保存,然后右键单击 - >使用powershell运行
在 Windows 中打开Powershell ,然后导航到要重命名文件的文件夹后键入以下命令
\nget-childitem *.mp3 | foreach { rename-item $_ $_.Name.Replace(" ", "") }\nRun Code Online (Sandbox Code Playgroud)\n我们来分析一下:
\nget-childitem *.mp3\n这列出了名称以 .mp3 结尾的所有文件。然后它们通过 | 管道传送到下一个命令。操作员。
\nforeach { 重命名项目 $_ $_.Name.Replace(" ", "") }
\n这会将“”的所有实例(在本例中是空格 || 这是要被替换的实例)替换为任何内容,用“”表示,从而有效地从目录中的所有文件中擦除该单词。
\n您还可以将 get-childitem *.mp3 修改为 get-childitem \xe2\x80\x93 ,这将重命名目录中的所有文件,而不仅仅是名称以 .mp3 结尾的文件。
\n** 笔记 **
\n如果您不喜欢上述方法,有一个很棒的软件,名为 Bulk Rename Utility。我个人使用过这个软件,你可以在 youtube 上找到很多关于如何使用它的教程。
\n