Я пытаюсь хэшировать пакетный / .bat скрипт, который переименовывает один файл в случайную строку символов. Все, что я нашел при поиске, - это переименовать все файлы в одном каталоге - это немного больше, чем я ищу.
Следующий пример сценария является основой того, над чем я работаю. Он в основном переименовывает все файлы .txt в рабочем каталоге в произвольное имя файла длиной 8 символов, сохраняя расширение файла:
@echo off
setlocal disableDelayedExpansion
set "chars=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
for /f "eol=: delims=" %%F in ('dir /b /a-d *.txt') do call :renameFile "%%F"
exit /b
:renameFile
setlocal enableDelayedExpansion
:retry
set "name="
for /l %%N in (1 1 8) do (
set /a I=!random!%%36
for %%I in (!I!) do set "name=!name!!chars:~%%I,1!"
)
echo if exist !name!.jpg goto :retry
endlocal & ren %1 %name%.txt
Причина, по которой я пытаюсь переименовать только один файл, заключается в том, что моей конечной целью является создание расширения оболочки, в котором используется сценарий. Я хочу иметь возможность щелкнуть правой кнопкой мыши один файл, щелкнуть "Переименовать случайный", и он вызывает командный файл, чтобы переименовать выбранный файл в произвольное имя.
Если у кого-нибудь есть какие-либо дополнения или изменения в вышеупомянутом коде, которые могут мне помочь, это было бы здорово! Спасибо