NET5 站點發布腳本

@echo off
setlocal enabledelayedexpansion

REM 源目錄, 要發布的 DLL 放到這個目錄下面
set source="C:\Users\xxx\Desktop\N5 Deploy\source"
REM 目標目錄前綴,目標目錄命名如:API_N5_1,API_N5_2, API_N5_3 這樣, 在同一個父文件夾下
set p=D:\Web\SUP_API重構\API_N5_
REM IIS站點名稱前綴,及應用程序池命名前綴, 規則同上
SET sp=API_N5_

REM 從1開始,步長1, 5結束(API_N5_1 到 API_N5_5, 5個站點)
for /l %%N in (1,1,5) do (
    
    REM 拼接目標目錄
    set t=%p%%%N
    
    REM 拼接目標站點、應用程序池名稱
    set st=%sp%%%N
    
    REM 存在 app_offline.htm 文件時, NET5 站點自動下線,請求會返回 503
    set f=!t!\\app_offline.htm
    
    REM 如果目的目錄不存在, 自動創建
    IF NOT EXIST !t! MD !t!
    
    REM echo !t!    
    REM echo !f!
    
    REM CD 不起作用
    REM CD /d !t!
    REM echo %CD%
    
    REM 創建 app_offline.htm 文件
    echo aa>!f!
    
    REM 暫停10秒, 等待站點停止
    REM ping 127.0.0.1 -n 10 >null
    
    REM 關閉站點,應用程序池
    REM app_offline.htm 對請求量大的站點,短時間內不會關閉應用程序池
    REM 如果不關閉站點、應用程序池, 還是會復制文件失敗
    C:\Windows\System32\inetsrv\appcmd.exe stop site "!st!"
    C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:!st!
    
    REM 復制文件
    xcopy %source% !t! /Y /R /I /s /F
    
    
    REM 刪除 app_offline.htm, 無 app_offline.htm 站點是可使用狀態
    del /f /q !f!
    
    REM 打開站點,應用程序池
    C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:!st!
    C:\Windows\System32\inetsrv\appcmd.exe start site "!st!"
    
    echo ---------------------------------------------
)

echo 完成, 10秒后自動關閉
ping 127.0.0.1 -n 10 >null
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容