[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
楼主有兴趣可以试试这段代码:
@echo off
set "pathF="
set/p pathF="从资源管理器拖入或键入一个目标目录:"
if not defined pathF exit
set tmpF="_tmpFile_"
dir /s/b/a-d %pathF%\*.txt > %tmpF%
setlocal enabledelayedexpansion
set/a n=0
for /f "usebackq delims=" %%F in (%tmpF%) do (
    set/a n+=1
    set "pf=RJ!n!"
    if !n! lss 10 (set "pf=RJ000!n!") else (if !n! lss 100 (set "pf=RJ00!n!") else (if !n! lss 1000 (set "pf=RJ0!n!")))
    ren "%%F" "!pf!|%%~nxF"
)
del /q %tmpF%
endlocal & exit

TOP

当目录文件上千或更多时,采用dir>临时文件替代for...in ('dir...') 会明显提速。

TOP

抱歉...代码中的.txt应该改成楼主指定的.pdf

TOP

翻了翻以前的笔记,有个更省事的技法来格式化补零字符串,而且有通用性(读者一看即得),用在本例中的代码如下:
    set "pf=RJ000!n!"
    set "pf=!pf:~-4!"
替换我在12楼原来的代码段:
    set "pf=RJ!n!"
    if !n! lss 10 (set "pf=RJ000!n!") else (if !n! lss 100 (set "pf=RJ00!n!") else (if !n! lss 1000 (set "pf=RJ0!n!")))

TOP

抱歉有个笔误,更正如下:
    set "pf=000!n!"
    set "pf=RJ!pf:~-4!"

TOP

返回列表