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

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

tarasov.evgeny 25-10-2013 12:38 2240847

EnableDelayedExpansion и For
 
Не могу понять почему с включенном параметром EnableDelayedExpansion не работает часть скрипта.
не работает
Код:

@echo off
setLocal EnableDelayExpansion
for %%i in (%systemroot%\tasks\*.job) do schtasks /change /tn %%~ni /ru Admin /rp Pass1

Пишет нет доступа
С отключенным setLocal работает.
пробовал менять %systemroot% на полный путь или менять % на ! положительного результата не принесло.

Iska 25-10-2013 14:51 2240926

tarasov.evgeny, Вы не могли бы просто копировать текст кода, а не набирать вручную?
Цитата:

Цитата tarasov.evgeny
…с включенном параметром EnableDelayedExpansion
Код:


setLocal EnableDelayExpansion

»


amel27 25-10-2013 14:54 2240929

может сравнить?

Код:

@echo off
(
setLocal DisableDelayedExpansion
for %%i in (%systemroot%\tasks\*.job) do echo schtasks /change /tn %%~ni /ru Admin /rp Pass1
)>dde.cmd
(
setLocal EnableDelayedExpansion
for %%i in (%systemroot%\tasks\*.job) do echo schtasks /change /tn %%~ni /ru Admin /rp Pass1
)>ede.cmd


tarasov.evgeny 25-10-2013 15:23 2240946

Iska, amel27,
Благодарю за помощь. Ошибка заключалась в том, что в реальном пароле был восклицательный знак !, который съедался. Я взял пароль в "" и всё заработало.
Сработало один раз, продолжаем думать думы.
Цитата:

Цитата Iska
tarasov.evgeny, Вы не могли бы просто копировать текст кода, а не набирать вручную? »

Спасибо за совет, была причина, по которой пришлось набирать в ручную. Обычно я так не делаю.
Цитата:

Цитата amel27
может сравнить? »

Нашел ошибку в первую очередь благодаря вашему совету, но способ я не понял. На выходе два файла, которые я сравнил в ручную и нашел ошибку. Я не думаю, что Вы советовали именно такое решение

Насколько я понял (поправьте, если я ошибаюсь) , знак "!" никак экранировать нельзя. Либо менять пароль, либо отключать выполнение EnableDelayedExpansion.
Не проверял, но вроде тройным экранированием можно -
^^^!


Время: 20:16.

Время: 20:16.
© OSzone.net 2001-