1

Тема: CMD/BAT: Преоброзование кирилицы в латиницу

Здравствуйте народ...есть у меня такой вот маленький батник

@echo off
set /P pset= "Nazvanie papki: "
echo %pset%
MD D:\Today\"2018-12-12 %pset%"
XCOPY C:\Users\Sifat\Downloads D:\Today\"2018-12-12 %pset%"\
del "C:\Users\Sifat\Downloads\*.*" /s /q

который просит ввести название папки...и создаёт папку с названием "2018-12-12 ТЕКСТ КОТОРЫЙ БЫЛ ВВЕДЕН В КОМАНДНУЮ СТРОКУ"
после копирует файлы с папки загрузки в данную папку, после удаляет всё, что есть  в папке загрузки..
так вот...Я должен создавать папки в латинице...мне приходится вручную писать в латинице название папок...название папок, это Имена и фамилии клиентов....т.е. имена клиентов у меня есть в кирилице...я хочу их ввести в командную строку так же в кирилице, что-бы командная строка создала папку в латинице....нашёл в форуме этом,такой вот код...но никак не смог понять суть, как мне это "чудо" добавить в свой батник..

@echo off 
if "%*"=="" goto :eof
if not exist %1 goto istext

setlocal  enabledelayedexpansion
for /f "delims=" %%a in (%1) do (
    set words=%%a
    set words=!words:а=a!
    set words=!words:б=b!
    set words=!words:в=v!
    set words=!words:г=g!
    set words=!words:д=d!
    set words=!words:е=e!
    set words=!words:ё=jo!
    set words=!words:ж=zh!
    set words=!words:з=z!
    set words=!words:и=i!
    set words=!words:й=j!
    set words=!words:к=k!
    set words=!words:л=l!
    set words=!words:м=m!
    set words=!words:н=n!
    set words=!words:о=o!
    set words=!words:п=p!
    set words=!words:р=r!
    set words=!words:с=s!
    set words=!words:т=t!
    set words=!words:у=u!
    set words=!words:ф=f!
    set words=!words:х=h!
    set words=!words:ц=ts!
    set words=!words:ч=ch!
    set words=!words:ш=sh!
    set words=!words:щ=sch!
    set words=!words:ъ=''!
    set words=!words:ы=i!
    set words=!words:ь='!
    set words=!words:э=eh!
    set words=!words:ю=ju!
    set words=!words:я=ja!

    echo !words!
)
endlocal

exit /b

:istext
set word=%*
set word=%word:а=a%
SET word=%word:б=b%
SET word=%word:в=v%
SET word=%word:г=g% 
SET word=%word:д=d%
SET word=%word:е=e%
SET word=%word:ё=jo% 
SET word=%word:ж=zh% 
SET word=%word:з=z% 
SET word=%word:и=i% 
SET word=%word:й=j% 
SET word=%word:к=k% 
SET word=%word:л=l% 
SET word=%word:м=m% 
SET word=%word:н=n% 
SET word=%word:о=o% 
SET word=%word:п=p% 
SET word=%word:р=r% 
SET word=%word:с=s% 
SET word=%word:т=t% 
SET word=%word:у=u% 
SET word=%word:ф=f% 
SET word=%word:х=h%
SET word=%word:ц=ts% 
SET word=%word:ч=ch% 
SET word=%word:ш=sh% 
SET word=%word:щ=sch%
SET word=%word:ъ="% 
SET word=%word:ы=y% 
SET word=%word:ь=`% 
SET word=%word:э=e% 
SET word=%word:ю=ju% 
SET word=%word:я=ja%

echo %word%

2

Re: CMD/BAT: Преоброзование кирилицы в латиницу

Например так (проверялось только в части замены символов):

@echo off
setlocal enableextensions enabledelayedexpansion

set /p sNewFolderName=Часть имени для нового каталога: 
call :Cyr2Lat "%sNewFolderName%" && (
	2>nul md "d:\Today\2018-12-12 !Cyr2Lat!"
	xcopy.exe "c:\Users\Sifat\Downloads" "D:\Today\2018-12-12 !Cyr2Lat!\"
	del "c:\Users\Sifat\Downloads\*.*" /s /q
)

endlocal
exit /b 0

:Cyr2Lat
	setlocal enableextensions enabledelayedexpansion

	set sOut=%~0
	set sText=%*
	
	if not defined sText (
		echo Need parameter
		exit /b 1
	)
	set sText=%sText:~1,-1%

	set sText=%sText:а=a%
	set sText=%sText:б=b%
	set sText=%sText:в=v%
	set sText=%sText:г=g%
	set sText=%sText:д=d%
	set sText=%sText:е=e%
	set sText=%sText:ё=jo%
	set sText=%sText:ж=zh%
	set sText=%sText:з=z%
	set sText=%sText:и=i%
	set sText=%sText:й=j%
	set sText=%sText:к=k%
	set sText=%sText:л=l%
	set sText=%sText:м=m%
	set sText=%sText:н=n%
	set sText=%sText:о=o%
	set sText=%sText:п=p%
	set sText=%sText:р=r%
	set sText=%sText:с=s%
	set sText=%sText:т=t%
	set sText=%sText:у=u%
	set sText=%sText:ф=f%
	set sText=%sText:х=h%
	set sText=%sText:ц=ts%
	set sText=%sText:ч=ch%
	set sText=%sText:ш=sh%
	set sText=%sText:щ=sch%
	set sText=%sText:ъ=''%
	set sText=%sText:ы=i%
	set sText=%sText:ь='%
	set sText=%sText:э=eh%
	set sText=%sText:ю=ju%
	set sText=%sText:я=ja%

	endlocal & set %sOut:~1%=%sText%
	exit /b 0