
為何批處理中%random%每次產生的隨機數字每次都一樣全部代碼在下面,經過測試發現,%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:WINDOWSsystem32spoolPRINTERS*.SPL %today%
- md temp
- ::遍歷所有SPL文件
- for /r %today% %%i in (*.SPL) do (
- ::復制一個SPL到臨時文件夾下
- copy /y %%i tempaaaaa.SPL
- ::對于開頭有空行的文檔將去除空行的aaaaa.SPL輸出到bbbbb.SPL
- for /f delims= %%i in (tempaaaaa.SPL) do >>tempbbbbb.SPL echo %%i
- ::得到bbbbb.SPL的第一行內容,輸出到temp.txt
- for /f tokens=1* delims=: %%i in ('findstr/n . tempbbbbb.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 tempaaaaa.SPL %%k%RANDOM%.SPL) else (ren tempaaaaa.SPL %%k.SPL)
- )
- del /q tempbbbbb.SPL
- del /q temp.txt
- )
- pause
nclick="copycode($('code0'));">復制代碼