[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 30# smatenchen


    @echo off
set "self=%~nx0"
rename 1.txt aabb____1.txt
rename 2.log aabb____2.log
for /f "delims=" %%i in ('dir /b /a-d *aabb*.*') do rename "%%i" "aabb____%%i"

for %%i in (*) do (
set str=%%i
setlocal enabledelayedexpansion
if "!str:~0,4!" neq "aabb" (
if "!str!" neq "!self!" (
del "!str!"
)
)
endlocal
)

for %%i in (*) do (
set str=%%i
setlocal enabledelayedexpansion
if "!str!" neq "!self!" rename "!str!" "!str:~7!"
endlocal
)

TOP

回复 31# Five66


    啊,顺序搞错了
rename 1.txt aabb____1.txt
rename 2.log aabb____2.log
for /f "delims=" %%i in ('dir /b /a-d *aabb*.*') do rename "%%i" "aabb____%%i"

换成

for /f "delims=" %%i in ('dir /b /a-d *aabb*.*') do rename "%%i" "aabb____%%i"

rename 1.txt aabb____1.txt
rename 2.log aabb____2.log

TOP

回复 31# Five66

回复 32# Five66
   

感谢!

1,
你也发现了这个顺序bug。

2,
【if "!str!" neq "!self!" rename "!str!" "!str:~7!"】里的【"!str:~7!"】应该改成【"!str:~8!"】。

3,
代码这么多,不简捷,肯定不如【if "!str!" equ "!str:aabb=!"】的方案。不实用,探讨,拓展一下方案还行。

TOP

是只要纯批的?就判断3个条件而已,or一下就行。
19  20 的不简洁吗

TOP

powershell不够简洁吗
  1. powershell -c "Remove-Item * -Exclude 1.txt,2.log,*aabb*, '%~nx0'"
复制代码

TOP

回复 34# pd1

回复 35# terse
   

感谢!

1,
纯批的感觉很舒服,的确是简单判断3个条件就行了,我之前想得复杂了。

2,
powershell的更简捷,可惜我还没学,不会用啊!

TOP

返回列表