Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Раскрытие имени файла во вложеном For (http://forum.oszone.net/showthread.php?t=145014)

dARKest 13-07-2009 20:00 1166691

Раскрытие имени файла во вложеном For
 
Подскажите как получить только имя файла

Есть структура директорий с базовой директорий d:\data
d:\data
d:\data\xml
d:\data\images
d:\data\html
(может быть любое количество на этом уровне)

Список директорий с которыми работаю храню D:\bin\download.ftp
Цитата:

xml
images
html


Код:

SetLocal EnableExtensions
SetLocal EnableDelayedExpansion

set $path_tools=D:\bin
set $local_data=D:\data
set $sleep_intervel=5m
set $download_path=D:\bin\download.ftp

rem читаю имя поддиректории из файла
for /f "eol=# tokens=1" %%i in (%$download_path%) do (

rem в этой поддиректории для всех файлов посчитать md5
for %%j in (%$local_data%\%%i\*.*) do (

rem Результат сохранить в %$local_data%\tmp\local\ИМЯ файла+.md5

%$path_tools%\md5sum.exe %%j > %$local_data%\tmp\local\%%i\    .md5
rem _____________________________________________________^^^                                                                                                           
)

)

Или может во втором цикле сразу получать только имя файла и собирать путь к исходному?

amel27 14-07-2009 08:39 1167037

dARKest, "FOR /?" - в самом конце справки поддерживаемые подстановки для файлов
Код:

%$path_tools%\md5sum.exe %%j >%$local_data%\tmp\local\%%i\%%~nj.md5
З.Ы. хорошая привычка - имена файлов брать в кавычки

dARKest 14-07-2009 09:45 1167075

Самое интересноя я так пробовал. Что то не правильно в мелочах видимо у меня было....

А вообще можете популярно объяснить насчет когда используется %% вместо %

%$имя% и !имя!

У меня проблема с пониманием когда где какой формат использовать. Более того я использую смешаный и работает...

amel27 14-07-2009 13:43 1167294

%%i - временные переменные циклов в батниках
%i - то же, но для ввода непосредственно из командной строки

%имя% - подстановка значения переменной "имя"
!имя! - то же самое, но внутри циклов для случая, когда значение переменной задается/меняется в течение цикла

Если в цикле вместо !имя! поставить %имя% - будет восстановлено значение ДО входа в цикл

dARKest 14-07-2009 15:07 1167386

спасибо. !имя! %$имя% получается дают один и тот же результат.

amel27 14-07-2009 15:43 1167412

Цитата:

Цитата dARKest
!имя! %$имя% получается дают один и тот же результат »

"имя" и "$имя" - разные переменные, опечатка?

dARKest 14-07-2009 16:15 1167441

Заблуждался :) Спасибо за уточнение

dARKest 17-07-2009 00:15 1169975

Спасибо. Закрыть


Время: 09:32.

Время: 09:32.
© OSzone.net 2001-