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

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

darkelfsfx 20-08-2016 14:09 2661617

Не выполняется присвоение значения переменной в цикле
 
Здравствуйте.
Подскажите, пожалуйста.
В моём скрипте выполняется создание имён получаемых из файла 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 2661630

Код:

@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 2661945

Спасибо. Принцип понял.


Время: 22:50.

Время: 22:50.
© OSzone.net 2001-