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

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

Googler


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

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


by.Serj, если речь про две строки в цикле:
Код: Выделить весь код
(for /f "delims=" %%a in ('dir /b/s "%$m%"') do @(
   set "b=%%~dpna"
   call echo.%%b:~0,%mp%%%%%~xa
 )
)>"%$f%"
присвоение переменной b пути\имени файла (%%a) без расширения:
Код: Выделить весь код
set "b=%%~dpna"
при включенном режиме EnableDelayedExpansion вторая строка имела бы вид:
Код: Выделить весь код
echo.!b:~0,%mp%!%%~xa
где "%%~xa" - расширение файла (%%a);
"%mp%" - значение переменной mp
"!b:~0,%mp%!" - %mp% первых символов переменной b

чтобы избежать использования EnableDelayedExpansion используем трикс с CALL: добавляем перед командой CALL и заменяем "!" на "%%" (отложенная подстановка), в результате при (первом) вызове CALL будут подставлены значения %%a и %mp%, при (втором) вызове ECHO - значение b

Отправлено: 06:04, 08-07-2010 | #18