Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] EnableDelayedExpansion и For

Ответить
Настройки темы
CMD/BAT - [решено] EnableDelayedExpansion и For

Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Не могу понять почему с включенном параметром EnableDelayedExpansion не работает часть скрипта.
не работает
Код: Выделить весь код
@echo off
setLocal EnableDelayExpansion
for %%i in (%systemroot%\tasks\*.job) do schtasks /change /tn %%~ni /ru Admin /rp Pass1
Пишет нет доступа
С отключенным setLocal работает.
пробовал менять %systemroot% на полный путь или менять % на ! положительного результата не принесло.

Отправлено: 12:38, 25-10-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


tarasov.evgeny, Вы не могли бы просто копировать текст кода, а не набирать вручную?
Цитата tarasov.evgeny:
…с включенном параметром EnableDelayedExpansion
Код: Выделить весь код
…
setLocal EnableDelayExpansion
»
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:51, 25-10-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:54, 25-10-2013 | #3


Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


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

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

Последний раз редактировалось tarasov.evgeny, 28-10-2013 в 14:11.


Отправлено: 15:23, 25-10-2013 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] EnableDelayedExpansion и For

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход