全部代码在下面,经过测试发现,%random%产生的随机数每次都一样(关闭Cmd后再开就更新一个新数),导致不能重命名,高手帮我看看哪里出了问题!- @echo off&setlocal enabledelayedexpansion
- echo ------------------------------------------------------
- echo 保存今天打印机的缓存文件并根据内容的第一个词改名
- echo ------------------------------------------------------
- ::建立今天日期文件夹
- set /a today=%date:~0,4%%date:~5,2%%date:~8,2%
- if not exist %today% md %today%
- ::将今天的打印机缓存文件备份到日期文件夹下
- xcopy /D:%date:~5,2%-%date:~8,2%-%date:~0,4% C:\WINDOWS\system32\spool\PRINTERS\*.SPL %today%\
- md temp
- ::遍历所有SPL文件
- for /r "%today%\" %%i in (*.SPL) do (
- ::复制一个SPL到临时文件夹下
- copy /y %%i temp\aaaaa.SPL
- ::对于开头有空行的文档将去除空行的aaaaa.SPL输出到bbbbb.SPL
- for /f "delims=" %%i in (temp\aaaaa.SPL) do >>temp\bbbbb.SPL echo %%i
- ::得到bbbbb.SPL的第一行内容,输出到temp.txt
- for /f "tokens=1* delims=:" %%i in ('findstr/n . temp\bbbbb.SPL') do if %%i geq 1 if %%i leq 1 echo %%j>>temp.txt
- ::将temp.txt的内容取第一个字符串,并改名aaaaa.SPL为这个字符串
- for /f "usebackq delims= " %%k in (temp.txt) do (
- ::如果有重名就在后面加一个随机数
- if exist temp\%%k.SPL (ren temp\aaaaa.SPL %%k%RANDOM%.SPL) else (ren temp\aaaaa.SPL %%k.SPL)
- )
- del /q temp\bbbbb.SPL
- del /q temp.txt
- )
- pause
复制代码
|