回复 15# pcl_test - echo;%*&pause
- set "thefile=%*"
- echo thefile=%thefile%
- for /f "tokens=*" %%I in ("%thefile%") do (
- echo %%~nxI)
复制代码 单独这样用BAT时,是可行的,但是把这段代码放到整个批处理中,就不行了。- @echo on&setlocal enabledelayedexpansion
- set/a g=%time:~0,2%,h=g+100
- set "file_suffix=_TonyQ_%h:~-2%%time:~3,2%"
- echo file_suffix = %file_suffix%
- pause
- :ADDREM
- echo;%*&pause
- set "thefile=%*"
- echo thefile=%thefile%
- for /f "tokens=*" %%I in ("%thefile%") do (
- echo %%~nxI
- if %%I=="" goto END
- pause
- set "file_name=%%~nxI"&set "file_prename=%%~nI"&set "file_extname=%%~xI"
- echo file_name= !file_name!&echo file_prename=!file_prename!&echo file_extname=!file_extname!
- set "file_name0=!file_name: =_!"&echo !file_name!中的空格已经改为_ ,文件 全 名 改为!file_name0!
- set "file_prename=!file_prename: =_!"&echo !file_prename!中的空格已经改为_ ,文件名 改为!file_prename!
- set "file_name1=!file_name0:%(=(!"&echo !file_name0!中的括号已经改为( ,文件 全 名 改为!file_name1!
- set "file_prename1=!file_prename:%(=(!"&echo 括号已经改为( ,文件名 改为!file_prename1!
- set "file_name2=!file_name1:%)=)!"&echo !file_name1!中的括号已经改为) ,文件 全 名 改为!file_name2!
- set "file_prename2=!file_prename1:%)=)!"&echo 括号已经改为) ,文件名 改为!file_prename2!
- set "file_name3=!file_name2:%+=:!"&echo !file_name2!中的加号已经改为: ,文件 全 名 改为!file_name3!
- set "file_prename3=!file_prename2:%+=:!"&echo 加号已经改为: ,文件名 改为!file_prename3!
- pause
- ren "!file_name!" "!file_name3!"
- pause
- for %%a in ("!file_name3!") do (
- set "file_pre=4R%date:~2,2%%date:~5,2%%date:~8,2%_"&echo file_pre= !file_pre!
- set "file_new=!file_pre!!file_prename3!!file_suffix!!file_extname!"&echo file_new= !file_new!
- )
- pause
- ren "!file_name3!" "!file_new!"
-
- echo %thefile% 已经阅读完毕并更名为 !file_new!
- )
- shift
- goto ADDREM
- :END
- echo OK
- pause
复制代码 这个需要改名的TXT文件为 |