CMD/BAT - [решено] EnableDelayedExpansion и For

Ответить
Аватара пользователя
tarasov.evgeny

CMD/BAT - [решено] EnableDelayedExpansion и For

Сообщение tarasov.evgeny »

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

не работает



Код:

Код: Выделить всё

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

Пишет нет доступа

С отключенным setLocal работает.

пробовал менять %systemroot% на полный путь или менять % на ! положительного результата не принесло.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] EnableDelayedExpansion и For

Сообщение Iska »

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


Цитата tarasov.evgeny:



…с включенном параметром EnableDelayedExpansion…



Код:

Код: Выделить всё

…
setLocal EnableDelayExpansion
…

CMD/BAT - [решено] EnableDelayedExpansion и For
Аватара пользователя
amel27

Re: CMD/BAT - [решено] EnableDelayedExpansion и For

Сообщение amel27 »

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





Код:

Код: Выделить всё

@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

Re: CMD/BAT - [решено] EnableDelayedExpansion и For

Сообщение tarasov.evgeny »

Iska, amel27,

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

Сработало один раз, продолжаем думать думы.


Цитата Iska:



tarasov.evgeny, Вы не могли бы просто копировать текст кода, а не набирать вручную?
CMD/BAT - [решено] EnableDelayedExpansion и For




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


Цитата amel27:



может сравнить?
CMD/BAT - [решено] EnableDelayedExpansion и For




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



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

Не проверял, но вроде тройным экранированием можно -

^^^!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»