Получение уникального числа в коммандном файле Windows

Visual Studio иногда радует совершенно неожиданными ошибками. Например, с недавнего времени при любой перекомпиляции компилятор сообщает мне о невозможноти переписать файл .pdb, который содержит отладочную информацию. Варианты с отключение дебага или постоянной перезагрузкой среды разработки меня, по понятным причинам, не устраивают.

Указанный файл нельзя удалить, так как он открыт на запись, но к счастью его можно переименовать, что выглядит несколько странно, но тем не менее работает. Переименованные файлы так же не могут быть удалены или перезаписаны до перезагрузки Visual Studio 2003.

Для решение проблемы решил использовать .bat файл, возможности которого весьма велики, вопреки ожиданиям большого числа известных мне программистов. Чтобы убедиться в этом можно заглянуть вот на этот ресурс - DosTips

Вариант предложенный для генерации уникального числа на основе текущего времени, оказался излишне сложным, да еще и не работающим в русской версии Windows, потому пришлось немного модифицировать скрипт и в результате получился примерно вот такой .bat файл

call :Unique unique
echo %unique%

GOTO:EOF

:Unique 
SETLOCAL
for /f "tokens=1-3 delims=/.- " %%A in ("%date:* =%") do (set dd=%%A&set mm=%%B&set yy=%%C)
for /f "tokens=1-4 delims=:., " %%A in ("%time: =0%") do @set UNIQUE=%yy%%mm%%dd%%%A%%B%%C%%D
ENDLOCAL & IF "%~1" NEQ "" (SET %~1=%UNIQUE%) ELSE echo.%UNIQUE%
EXIT /b

:EOF
exit 0

Читайте в блоге

PHP. print_r и вывод в переменную
Использование \K в регулярных выражениях. Игнорирование начальной части совпадения.
PHP. Сохранение массива в файл
Разноцветное облако ссылок

Метки: bat windows

Комментарии:

Войдите на сайт, чтобы оставить комментарий