@echo off
SET folder=test
for /f "tokens=*" %%a in ('PowerShell -Command "& {Get-Date -format "yyMMdd"}"') do set folder=%%a
echo C:\Ќ®ў п Ї ЇЄ \%folder%
cd C:\Ќ®ў п Ї ЇЄ \%folder%
dir /s /b
pause
как видно для задания формата папки используется программа powerShell - что не очень то и круто. Но другие примеры в том разделе давали еще хуже варианты. Однако позже натолкнулся на конструкцию вида %date:~6,4%_%date:~3,2%_%date:~0,2% и там объяснили в чем прикол этих тильд и номеров: если в кратце, то Если вместо %переменная% взять %переменная:~начало,длина% - получим часть строки. В итоге тот же скрипт выше будет выглядеть чуть интереснее в плане производительности (но не в плане универсальности, потому как вывод стандартной даты может отличаться на разных машинах с учетом настройки локализации и прочего)
@echo off
SET folder=test
set folder=%date:~8,2%%date:~3,2%%date:~0,2%
echo C:\Ќ®ў п Ї ЇЄ \%folder%
cd C:\Ќ®ў п Ї ЇЄ \%folder%
dir /s /b
pause
UPDATE. В общем проверил теорию с кодировкой и выяснилось что копирование осуществляется с ошибкой, вместо буквы А копируется пробел, потому единственный выход в таких ситуациях это использовать специальный блокнот в винде, способный сохранять в кодировке 866, либо гуглить такую задачу отдельно. Кроме того пришел к выводу что конструкция с PowerShell удобнее, т.к. позволяет задействовать время в названии файла, что дает больше возможностей. Следующим постом будет оканчательный вариант скрипта с пояснениями
Комментариев нет:
Отправить комментарий