PDA

Показать полную графическую версию : [решено] Не выполняется присвоение значения переменной в цикле


darkelfsfx
20-08-2016, 14:09
Здравствуйте.
Подскажите, пожалуйста.
В моём скрипте выполняется создание имён получаемых из файла copyfile.ini содержащих имена директорий. Отдельно получаю текущую дату и время.
Содержимое файла copyfile.ini (директории реально присутствуют) на диске:

g:\3
g:\data


Сам скрипт. В нём присутствует переменная blo, которая должна получать имя последний директории во вложении директорий из файла copyfile.ini. Т.е. по очереди: первой "3", затем "data".
Проблема в том что переменная blo не получает эти данные. Что я делаю не так?

echo off
cls
set PostFolder=g:\2
set ListFolders=g:\copyfile.ini
set now=%DATE: =0% %TIME: =0%

for /f "tokens=1-7 delims=/-:., " %%a in ( "%now%" ) do (
set nowdata=%%c%%b%%a_%%d%%e
)

for /f "delims=" %%n in (%ListFolders%) do (
for /f "tokens=1-3 delims=\: " %%a in ("%%n") do set blo=%%b
for /f "delims=" %%a in ('dir "%%n" /b /a:-d') do (
echo %%n\%blo%%nowdata%
)
)

greg zakharov
20-08-2016, 15:20
@echo off
setlocal enabledelayedexpansion
set "time=%time:~0,8%"
set "now=%date:.=%_%time::=%"

for /f %%i in ('find /v /c "" ^< copyfile.ini') do set "n=%%i"
3<copyfile.ini (
for /l %%i in (1, 1, %n%) do (
set /p blo=<&3
echo C:\!blo:g:\=!\!now!
)
)
endlocal
exit /b

darkelfsfx
21-08-2016, 18:46
Спасибо. Принцип понял.




© OSzone.net 2001-2012