Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 268
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата 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 минут игрался с переменными - так и не нашел решение

Последний раз редактировалось shadowbat, 18-06-2010 в 20:07.


Отправлено: 18:58, 18-06-2010 | #14