【问题标题】:Creating X numbers of Applications and Application Pools in iis using a batch script使用批处理脚本在 iis 中创建 X 个应用程序和应用程序池
【发布时间】:2013-07-17 18:38:22
【问题描述】:

我目前有这个批处理文件,允许我在 IIS 中创建应用程序和应用程序池。它可以工作,但它只创建一个应用程序和应用程序池。

这是我当前的脚本:

@echo ON
setlocal enabledelayedexpansion

REM "Content Source path" 
set arg1=%1

REM "Content destination path" 
set arg2=%2

REM "apps to setup" 
set arg3=%3

REM Split virt names and loop through it.
FOR /F "tokens=1* delims=," %%a in (%arg3%) do (

    set vir=%%a
    set pool=!vir!!poolname!

    REM CREATE APPLICATION  
    %systemroot%\system32\inetsrv\APPCMD add app /site.name:"Default Web Site" /path:/!vir! /physicalpath:"%arg2%"

    REM CREATE APP POOL
    %systemroot%\system32\inetsrv\appcmd add apppool /name:!pool! /managedPipelineMode:Integrated /processModel.identityType:ApplicationPoolIdentity /enable32BitAppOnWin64:false

    REM ASSIGN APP POOL TO APPLICATION
    %systemroot%\system32\inetsrv\appcmd set app /app.name:"Default Web Site/!vir!" /applicationPool:!pool!

):END Endlocal

install.bat "c:\source" "c:\target" "APP1,APP2,APP3"

请有人告诉我我做错了什么。

谢谢。

【问题讨论】:

    标签: iis batch-file


    【解决方案1】:

    尝试调用您的批次:

    install.bat "c:\source" "c:\target" APP1,APP2,APP3
    

    APP.. 周围没有双引号。
    并在批处理中设置args

    set "arg3=%3,%4,%5"
    

    【讨论】:

    • 请查看Microsoft's IIS Manual。 :)
    【解决方案2】:

    问题 1::END ENDLOCAL 不应跟随 'for %%a' 循环中的右括号。这会产生语法错误。

    问题2:如果:END ENDLOCAL移动到下一行,endlocal无效。与 Assembler 不同,Batch 不执行出现在标签后的“指令”。

    问题 3::END 标签是多余的。批处理中没有用到。

    问题 4:endlocal 是多余的 - 到达文件末尾会关闭在相同上下文中运行的任何本地环境。

    问题 5:使用 %n(n 数字)分配变量将在分配的值中包含引号。使用%~n 处理封闭引号。

    问题 6:FOR/F 针对文件。虽然它会解析一个带引号的字符串,就好像它是一个 echo %string% 指令,那只是一行,因此您的代码将只处理一次(遇到的“行数”)时间,分配第一个 ,-separated 令牌到%%a,其余到%%b(未使用)

    在这种情况下你需要的东西要简单得多 -

    FOR %%a in (%arg3%) do (
    

    问题 7:变量poolname 未在此代码中建立。除非在代码执行之前分配,否则set pool=!vir!!poolname! 会将pool 设置为!vir!,它本身等同于%%a。鉴于您显示的参数以及我标记的更改,然后在您的代码中,!pool!==!vir!==%%a

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-29
      • 2010-09-20
      • 2021-10-14
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多