标题: 请高手修改一下批量重命名代码
[打印本页]
作者: 5872169
时间: 2008-3-13 12:27
标题: 请高手修改一下批量重命名代码
set a=0
setlocal EnableDelayedExpansion
for %%n in ("C:\Documents and Settings\Administrator\桌面\yu\*.BMP") do (set /A a+=1
if !a! LSS 10 (ren "%%n" "!a!.BMP") else ren "%%n" "!a!.BMP")
在C:\Documents and Settings\Administrator\桌面\yu文件夹内*.BMP文件全部重命名为数字如1、2、3……但是遇到文件数量多的,必须执行两遍才可以。请高手帮助修改一下。
作者: moniuming
时间: 2008-3-13 13:22
@echo off
for /f "delims=" %%n in ("C:\Documents and Settings\Administrator\桌面\yu\*.BMP") do (
for /l %%a in (1,1,9) do (
ren "%%n" "%%a.bmp" 2>nul
)
)
作者: 5872169
时间: 2008-3-13 13:27
moniuming,代码不运行!
作者: sylovanas
时间: 2008-3-13 14:06
@echo off
set desktop=C:\Documents and Settings\Administrator\桌面\yu
set a=0
for /f "tokens=*" %%a in ('dir /a/b/on %desktop%\*.bmp^|findstr -i "\.bmp"') do call :name %%a
goto end
:name
set /a a+=1
ren "%desktop%\%1" "%a%.bmp"
goto:eof
:end
这样?
[
Last edited by sylovanas on 2008-3-13 at 02:10 PM ]
作者: fastslz
时间: 2008-3-13 14:12
@echo off
set N=0
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b/s/a-d "C:\Documents and Settings\Administrator\桌面\yu\*.BMP"') do (
set /a N=!N!+1
ren "%%i" "!N!"
)
pause
作者: moniuming
时间: 2008-3-13 14:13
@echo off
setlocal enabledelayedexpansion
set aa=0
for /f "delims=" %%a in ('dir /b /a-d "C:\Documents and Settings\Administrator\桌面\yu\*.BMP"') do (
set /a aa+=1
ren "%%a" !aa!.bmp
)
作者: moniuming
时间: 2008-3-13 14:15
晕啊,刷新慢了,没发现已经有了新的
作者: 5872169
时间: 2008-3-13 14:57
moniuming,找不到文件,经测试只有fastslz成功了,可能忘了加上文件名的后缀了加上.BMP,
作者: moniuming
时间: 2008-3-14 11:56
奇了怪了,为此我还多做了一个测试的代码呢,把文件名改来改去的,都没什么问题啊,这是我的原代码,我只是把红色部分换为你的罢了
@echo off
setlocal enabledelayedexpansion
set aa=0
for /f "delims=" %%a in ('dir /s /b /a-d
"d:\my pictures\*.jpg"') do (
set /a aa+=1
ren "%%a" !aa!.
jpg
)
这是另一个代码:
@echo off
setlocal enabledelayedexpansion
set a=1000
for /f "delims=" %%i in ('dir /b /s /a-d "d:\my pictures\*.jpg"') do (
set /a a+=1
set b=!a:~1,3!
ren "%%i" !b!.jpg
)
[
Last edited by moniuming on 2008-3-17 at 02:43 PM ]
作者: 5872169
时间: 2008-3-14 12:14
moniuming你第一次发的代码没有加/S,现在的代码全部测试成功
作者: moniuming
时间: 2008-3-14 14:19
没有/s也可以的,因为已经指明了路径
作者: 5872169
时间: 2008-3-14 14:29
moniuming,这条命令我又测试了一下,还是不行,没有加/s
@echo off
setlocal enabledelayedexpansion
set aa=0
for /f "delims=" %%a in ('dir /b /a-d "C:\Documents and
Settings\Administrator\桌面\yu\*.BMP"') do (
set /a aa+=1
ren "%%a" !aa!.bmp)
[
Last edited by 5872169 on 2008-3-14 at 03:47 PM ]
作者: 26933062
时间: 2008-3-14 15:10
12 楼代码不能运行的原因是没有加 /s 参数,导致%%a不是完整的路径,所以会出错。
作者: annugu
时间: 2008-3-28 18:57
极品啊要了,谢谢啊