Я видел много сообщений о создании уникального имени файла от наивного% TIME% до правдоподобного (но недостаточного)% RANDOM%. Использование wmic os get localdatetime
намного лучше, но оно все равно может терпеть неудачу на нескольких CPU/основных машинах. Следующий script в конечном итоге завершится неудачей при запуске в 5+ оболочках на многоядерной машине.
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /L %%i IN (0, 1, 1000) DO (
FOR /F "usebackq" %%x IN (`wmic os get localdatetime ^| find "."`) do (set MYDATE=%%x)
ECHO MYDATE is now !MYDATE!
IF EXIST testuniq_!MYDATE!.txt (
ECHO FAILED ON !MYDATE!
GOTO TheEnd
)
COPY NUL >testuniq_!MYDATE!.txt
)
:TheEnd
EXIT /B 0
Есть ли у кого-нибудь надежный способ создания уникального имени файла в оболочке script?