我发现了以下帖子: Batch File to replace underscores with spaces in a filename
这似乎有效,但是当您将文件拖到批处理文件上时,它会处理该文件夹中的所有文件。
@echo off
setlocal enabledelayedexpansion
for %%a in (*_*) do (
set file=%%a
ren "!file!" "!file:_= !"
)
有没有办法编辑这个,所以我只需将我想要重命名的文件拖到批处理文件上,然后重命名该文件?
我还发现这个链接非常适合重命名一个文件,但它与我尝试做的相反: Renaming files with spaces and dots in the filename
@ECHO OFF &setlocal
FOR %%f IN (%*) DO (
set "oldname=%%~ff"
set "oldfname=%%~nf"
set "extension=%%~xf"
setlocal enabledelayedexpansion
set "filename=!oldfname:.=_!"
set "filename=!filename: =_!"
if not "!filename!"=="!oldfname!" RENAME "!oldname!" "!filename!!extension!"
endlocal
)
谢谢!
-Thom K。
答案 0 :(得分:0)
你可能只需要这样的结构:
@Echo Off
Set file=%~nx1
If Not Defined file Exit/B
Set "locn=%~dp1"
If Not Exist "%locn%%file%" Exit/B
If Not Exist "%locn%%file:_= %" (Ren "%locn%%file%" "%locn%%file:_= %")