在bat中如何提取不包括文件后缀的文件名

2024-11-08 22:51:06
推荐回答(3个)
回答1:

可以用这个代码处理:
@echo off
set /p str1= 请输入要替换的文件(夹)名中的字符串(空格亦适用):
set /p str2= 请输入替换后的文件(夹)名中的字符串(删除请直接回车):
for /f "delims=" %%a in ('dir /s /b ^|sort /+65535') do (
if "%%~nxa" neq "%~nx0" (
set "file=%%a"
set "name=%%~na"
set "extension=%%~xa"
call set "name=%%name:%str1%=%str2%%%"
setlocal enabledelayedexpansion
ren "!file!" "!name!!extension!" 2>nul
endlocal
)
)
exit
把这个贴到文本里面,改名为:批量修改当前文件夹下文件(夹)名中的任意字符.bat。把这个bat放入需要修改的文件夹,点击运行后,在第一行输入:.jpg,第二行直接回车,即可。
这个代码适合文件夹名或者文件名中的任何相同字符的修改,删除。同时可以同步修改子文件夹及其里面的文件哟。
希望可以帮助到你。

回答2:

f "%1" "%~n1.png"

在%1中间加上~n可以得到主文件名

回答3:

f "%1" %~n1.png