Цитата amel27:
shadowbat, кодировка самого батника DOS (866)? (блокнот не катит) »
|
старею... создавал ПКМ -> txt, открывая и сохраняя его через Bred2k. оказывается Bred2k не всегда сохраняет правильно. bat не выполнялся из-за кодировки, благодарю за наводку
РЕШЕНИЕ:
Код:

chcp 1251
set $m=C:\Program Files\*.txt
set $f=%~n0_tst.cmd
set mp=50
(for /f "delims=" %%a in ('dir /b/s "%$m%"') do @(
set "b=%%~dpna"& call set "c=%%b:~0,%mp%%%"& call call set "d=%%%%b:%%c%%=%%%%"
if defined d call echo move "%%a" "%%c%%%%~xa"))>"%$f%"
"%$f%"
chcp 866
P.S. причем если mp меньше "длины пути до файла", то батник вытягивает файл наверх, т.е. удаляет папки начиная с глубины. и чем больше разница между mp и "длиной пути до файла" тем выше окажется конечный файл. а в решении через Autoit если mp<"длины пути до файла" то скрипт работает некорректно
-----
1.
P.S.S. а как удалить файл cmd после выполнения?
del "%$f%" перед chcp866 не помогает
2.
P.S.S.S.
читать дальше »
вот этот батник сохраняет путь до файла + имя файла.
Код:

set f1=1.txt
set f2=2.txt
set mp=100
(for /f "usebackq delims=" %%a in ("%f1%") do @(
set "b=%%~dpna"&call echo.%%b:~0,%mp%%%%%~xa))>"%f2%"
а как сделать только путь до файла без добавления имени файла?
я 15 минут игрался с переменными - так и не нашел решение