![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переменная внутри цикла |
|
CMD/BAT - Переменная внутри цикла
|
Новый участник Сообщения: 7 |
Есть батник который проверяет наличие приложения в иис и удаляет его.
FOR /f %%a in ('C:\Windows\system32\inetsrv\appcmd list app /path:"/EnergySuite/PR320/Utility.FinanceService" /text:path') Do ( SET AppPath="%%a" IF DEFINED AppPath ( echo "%AppPath%" C:\Windows\system32\inetsrv\appcmd delete app "%AppPath%" if errorlevel 0 (Echo Delete app "%AppName%" >> CreateApp.log) )) FOR /F %a in ('C:\Windows\system32\inetsrv\app cmd list app /path:"/EnergySuite/PR320/Utility.FinanceService" /text:path') Do ( SET AppPath="/EnergySuite/PR320/Utility.FinanceService" IF DEFINED AppPath ( echo "" C:\Windows\system32\inetsrv\appcmd delete app "" if errorlevel 0 (Echo Delete app "" 1>>CreateApp.log ) ) ) |
|
Отправлено: 13:24, 06-06-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата VAbramyak:
«setlocal enableextensions enabledelayedexpansion» в начале пакетного файла и «!AppPath!» вместо «%AppPath%». |
|
Отправлено: 13:43, 06-06-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать сделал, выводит просто echo !AppPath!, а не значение переменной.
|
Отправлено: 13:51, 06-06-2014 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:20, 06-06-2014 | #4 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Можно прокоментировать в чем моя ошибка?
|
|
Отправлено: 14:30, 06-06-2014 | #5 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать а почему теперь не работает код
set APPCMD=%windir%\system32\inetsrv\appcmd for /f %%i in ("%0") do set IniFile=%%~dpi\CreateApp.ini FOR /f "tokens=1,2,3,4,5 Delims=;" %%i in (%IniFile%) do ( for /f "delims=" %%j in (' C:\Windows\system32\inetsrv\appcmd list app /path:"/EnergySuite/PR320/Utility.FinanceService" /text:path') do ( set AppPath2="%%j" ) if defined AppPath2 ( echo %AppPath2% C:\Windows\system32\inetsrv\appcmd delete app %AppPath2% if errorlevel 0 ( echo Delete app %AppPath2%>> CreateApp.log ) ) FOR /f %%a in ('%APPCMD% list app /path:"%%i" /text:path') do ( SET AppPath="%%a" ) if defined AppPath ( echo %AppPath% %APPCMD% delete app %AppPath% if errorlevel 0 ( Echo Delete app %AppPath% >> CreateApp.log ) ) ) |
Отправлено: 15:08, 06-06-2014 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата VAbramyak:
Цитата Iska:
Цитата VAbramyak:
Смотрите: @echo off setlocal enableextensions enabledelayedexpansion set sVar=aaaaaaaaaa ( set sVar=bbbbbbbbbb if defined sVar ( echo [%sVar%] echo [!sVar!] ) ) endlocal exit /b 0 Цитата VAbramyak:
|
||||
Отправлено: 15:14, 06-06-2014 | #7 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 15:23, 06-06-2014 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Примерно так (не проверялось):
@echo off setlocal enableextensions enabledelayedexpansion set sExeFile=%SystemRoot%\system32\inetsrv\appcmd for /f %%i in ("%0") do set sIniFile=%%~dpi\CreateApp.ini for /f "usebackq tokens=1,2,3,4,5 Delims=;" %%i in ("%sIniFile%") do ( for /f "delims=" %%j in (' "%sExeFile%" list app /path:"/EnergySuite/PR320/Utility.FinanceService" /text:path' ) do set sAppPath2=%%j if defined sAppPath2 ( "%sExeFile%" delete app "!sAppPath2!" && >>"CreateApp.log" echo Delete app !sAppPath2! ) for /f %%a in ('"%sExeFile%" list app /path:"%%i" /text:path') do set sAppPath=%%a if defined sAppPath ( "%sExeFile%" delete app "!sAppPath!" && >>"CreateApp.log" echo Delete app !sAppPath! ) ) endlocal exit /b 0 Цитата VAbramyak:
|
|
Отправлено: 15:36, 06-06-2014 | #9 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать спасибо, буду пробовать
|
Отправлено: 15:59, 06-06-2014 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как работать с переменной внутри цикла FOR? | alex_past | Скриптовые языки администрирования Windows | 42 | 28-11-2018 16:19 | |
CMD/BAT - Переменная из цикла | ntro123 | Скриптовые языки администрирования Windows | 2 | 23-02-2014 16:25 | |
CMD/BAT - [решено] %errorlevel% внутри цикла всегда 0 | apozlevich | Скриптовые языки администрирования Windows | 5 | 22-11-2013 18:55 | |
Delphi - Переменная цикла и UInt64 | novashdima | Программирование и базы данных | 12 | 12-02-2013 19:50 | |
CMD/BAT - [решено] Условия внутри цикла for | blackmane | Скриптовые языки администрирования Windows | 4 | 02-08-2012 10:01 |
|