![]() |
cmd и echo внутри цикла
День добрый.
Видимо глаз совсем замылился и не вижу ошибку. Код:
set "SOFT_version=1.2.3.4" Код:
echo установка патча произведена>Z:\!--Logs--!\update_SOFT_fix\%computername%.txt на экране видно что отрабатывает это как Код:
echo установка патча произведена 1>Z:\!--Logs--!\update_SOFT_fix\%computername%.txt в чем может быть дело? |
Z похоже на сетевой диск. Пользователь от имени которого выполняется команда видит этот диск? (в "видит" я вкладываю:
1. разрешена ли запись для шары для этого пользователя 2. есть ли соответствующие NTFS права на этой шаре 3. примаплен ли диск) ну и главный вопрос - где объявляется переменная !--Logs--!? |
Цитата:
!--Logs--! это папка в которую падают куча логов, в том числе и планируется об апдейте софта попробовал и изменил путь до сохранения логов - не смотря на то, что на экране все равно выводит Код:
echo установка патча произведена 1>Z:\%computername%.txt теперь вопрос, как все таки заставить писать логи именно в папку Z:\!--Logs--!\update_SOFT_fix\ именно используя папку !--Logs--! |
экранировать !. сколь я помню в cmd это делается при помощи ^, т.е. по пути
Код:
Z:\^!--Logs--^!\update_SOFT_fix\ |
разобрался.
до цикла объявил set "Logs_Folder=^!--Logs--^!" ну и в echo стало Код:
echo установка патча произведена>Z:\!LogFolders!\update_SOFT_fix\%computername%.txt Второй день бился с этой проблемой. Реально - замылился глаз |
Если без setlocal enabledelayedexpansion то имя папки !--Logs--! воспримется правильно
Тупо переписал Ваш код Код:
@Echo Off Однако, ИМХО, Ваш код можно упростить
Код:
@Echo Off |
Время: 14:25. |
Время: 14:25.
© OSzone.net 2001-