AppCmd ​​для создания виртуального каталога на веб-сайте по умолчанию в IIS7

11

Я пытаюсь создать виртуальный каталог в разделе «Веб-сайт по умолчанию» в IIS 7, используя AppCmd.

Но сначала я хотел бы посмотреть, существует ли он уже. Как я могу использовать AppCmdдля создания виртуального каталога на «веб-сайте по умолчанию» и как я могу сделать оператор if?

Riri
источник

Ответы:

11

Попробуй это:

@ECHO OFF
REM --------------------------------------------------------------------------------
REM Check for and create VDir under Default Web Site
REM
REM %1 is the VDIR to create
REM %2 is the Physical path to the VDIR 
REM --------------------------------------------------------------------------------

IF "%1"=="" GOTO Syntax
IF "%2"=="" GOTO Syntax

ECHO Running...
ECHO   AppCmd.exe list vdir "Default Web Site/%1/"
ECHO.
AppCmd.exe list vdir "Default Web Site/%1/"
IF %errorlevel%==1 GOTO Exists

ECHO.
ECHO Running...
ECHO   AppCmd.exe ADD vdir /app.name:"Default Web Site/" /path:/%1 /physicalPath:%2
ECHO.
AppCmd.exe ADD vdir /app.name:"Default Web Site/" /path:/%1 /physicalPath:%2

GOTO End

:Exists
ECHO.
ECHO VDir already exists
ECHO.
GOTO End

:SYNTAX
ECHO.
ECHO VDir Name and Physical Path Required
ECHO.
ECHO CreateVDir.CMD ^<VDirName^> C:\PhysPath
ECHO.

:END
Christopher_G_Lewis
источник
Прохладно! Это как раз то, что мне нужно для начала! Спасибо! Похоже, ServerFault может быть так же хорошо, как и SO!
Рири
2
Кажется, это не вызывает код выхода 1 для несуществующего виртуального каталога для меня. Использование IIS 7.5.
jpmc26
1

Попробуй это. По большей части такой же, как ответ, данный Christopher_G_Lewis, но полагается на синтаксический анализ вывода списка вместо кода ошибки, который я тоже не получаю.

Также использует конструкцию оболочки cmd.exe A || B (если A терпит неудачу, тогда делайте B)

@ECHO OFF
REM --------------------------------------------------------------------------------
REM Check for and create VDir under Default Web Site
REM
REM %1 is the VDIR to create
REM %2 is the Physical path to the VDIR 
REM --------------------------------------------------------------------------------

IF "%1"=="" GOTO Syntax
IF "%2"=="" GOTO Syntax

AppCmd.exe list vdir "Default Web Site/%1/" | findstr /I "Default Web Site/%1/" || AppCmd.exe add vdir /app.name:"Default Web Site/" /path:/%1 /physicalPath:%2

goto :eof
Джеймс Хеббен
источник