标题: 如何去掉文件名的前后面空格?
[打印本页]
作者: dddyjq1
时间: 2008-8-9 22:48
标题: 如何去掉文件名的前后面空格?
请问如何批量去掉文件名的前后空格,中间的空格不变,后缀名不变,
比如 “爱丽丝 .txt”改为“爱丽丝.txt”
“ MPI .txt”改为“MPI.txt”
“mp3 同步歌词 .txt“就不变
先谢了!
作者: moniuming
时间: 2008-8-10 01:40
不知道是不是这个意思?
@echo off
for %%i in (*.txt) do call :ren_ "%%i" "%%~ni"
pause&goto :eof
:ren_
set "str=%~2"
set "var=%str:~0,1%"
if "%var%"==" " (set "str=%str:~1%"&goto :ren_)
:again
set "var=%str:~-1%"
if "%var%"==" " (set "str=%str:~0,-1%"&goto :again)
echo ren %1 "%str%.txt"
goto :eof
作者: pusofalse
时间: 2008-8-10 19:08
tokens=*和delims=的区别可以解决你的问题。
@echo off
for %%a in (*.txt) do for /f "tokens=*" %%i in ("%%~nxa") do ren "%%a" "%%i"
pause
作者: kidzgy
时间: 2008-8-10 20:28
我觉得奇怪,“ MPI .txt”这样的文件名一般是不会存在的,在你确实修改之后,是自动会去掉前头的空格的~
2楼能行,要将echo 去掉, 才有效果,要不就是展示了。
3楼不能。
完毕!
作者: bat-zw
时间: 2008-8-10 22:05
如前后都只有一个空格:
@echo off
for /f "delims=" %%i in ('dir /s /a-d /b *.*') do (
set "str=%%~ni"
call,set "str=%%str:~1,-1%%"
call,ren "%%i" %%str%%%%~xi
)
作者: terse
时间: 2008-8-11 00:33
3楼其实是可以做到的 可以去前后空格 当然文件名的前空格可以忽略
@echo off
for %%a in (*.txt) do for /f "tokens=*" %%i in ("%%~na") do ren "%%a" "%%~ni%%~xa"
pause
作者: moniuming
时间: 2008-8-11 14:37
向3楼和6楼学习了!!!
作者: dddyjq1
时间: 2008-8-14 22:33
谢谢各位,