AppCmd ​​zum Erstellen eines virtuellen Verzeichnisses auf der Standardwebsite in IIS7


11

Ich versuche, ein virtuelles Verzeichnis unter der "Standardwebsite" in IIS 7 mit zu erstellen AppCmd.

Aber zuerst würde ich gerne sehen, ob es bereits eine gibt. Wie kann ich AppCmdein virtuelles Verzeichnis unter der "Standardwebsite" erstellen und wie kann ich eine if-Anweisung ausführen?

Antworten:


11

Versuche dies:

@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

Cool! Das ist genau das, was ich brauche, um loszulegen! Vielen Dank! Sieht so aus, als wäre ServerFault genauso gut wie SO!
Riri

2
Dies scheint für mich keinen Exit-Code von 1 für ein nicht vorhandenes virtuelles Verzeichnis auszulösen. Verwenden von IIS 7.5.
jpmc26

1

Versuche dies. Meistens das gleiche wie die Antwort von Christopher_G_Lewis, basiert jedoch auf einer Analyse der Listenausgabe anstelle des Fehlercodes, den ich auch nicht erhalte.

Verwendet auch das Shell-Konstrukt cmd.exe A || B (wenn A fehlschlägt, dann mache 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.