切換語言為:簡體

Windows開機自動啟動前端專案指令碼

  • 爱糖宝
  • 2024-10-26
  • 2048
  • 0
  • 0

在公司中可能會有啟動多個前端的需求,如果早晨到公司之後每個專案都執行一遍命令很麻煩。或者是週末的時候後端同事來加班,但是需要你的前端。你不能專門跑到公司給後端同事啟動一個前端專案吧,這樣太麻煩了。於是我就寫了一個專屬於windows上的指令碼。

1. 指令碼

在Windows系統中,C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup存放在該目錄下面的.bat指令碼會自動執行,但是.ps1指令碼並不會自動執行。本片文章用.ps1指令碼進行演示。

指令碼(start_chuming_plm6_project.ps1):

# 定義要搜尋的根目錄
$rootDir = "G:\xxxx"

# node版本
$nodeVersion = 14.20.0

# 獲取所有以 "xxx" 開頭的目錄
$plm6Dirs = Get-ChildItem -Path $rootDir -Directory | Where-Object { $_.Name -like "xxx*" }

# 遍歷每個目錄
foreach ($dir in $plm6Dirs) {
    $projectDir = Join-Path $rootDir $dir.Name

    # 檢查是否有 package.json 檔案,確認是一個前端專案
    if (Test-Path (Join-Path $projectDir "package.json")) {
        Write-Host "start_project: $projectDir"
        
        # 使用 cmd /c 執行多個命令,並將視窗最小化
        Start-Process cmd.exe -ArgumentList "/c `"$env:ProgramFiles\nodejs\nvm\nvm.exe` use $nodeVersion && cd `"$projectDir`" && npm run dev" -WindowStyle Minimized
        
    } else {
        Write-Host "$projectDir not is project because package.json is not exist"
    }
}

https://picgo-1300696809.cos.ap-beijing.myqcloud.com/202410251743771.png

2. 設定開機自啟

2.1 透過bat指令碼去執行ps1指令碼

  1. C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 中建立一個新的 .bat 檔案,比如 RunMyScript.bat

  2. .bat 檔案中新增以下內容:

powershell -ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"

其中,將 C:\path\to\your\script.ps1 替換為實際的 PowerShell 指令碼路徑。

  1. 儲存並關閉檔案。這樣,Windows 會在啟動時自動執行 .bat 檔案,從而間接啟動你的 PowerShell 指令碼。

注意: .bat指令碼只有在輸入開機密碼,登入之後纔會開始執行。

2.2 使用任務計劃程式來啟動 PowerShell 指令碼

  1. 開啟任務計劃程式(可以在開始選單中搜索 “Task Scheduler”)。

  2. 點選 建立任務

Windows開機自動啟動前端專案指令碼

  1. 在“常規”選項卡中,命名任務並選擇 使用最高許可權執行

Windows開機自動啟動前端專案指令碼

  1. 在“觸發器”選項卡中,點選 新建,將觸發器設定為 在系統啟動時

Windows開機自動啟動前端專案指令碼

  1. 在“操作”選項卡中,選擇 啟動程式,在“程式或指令碼”中輸入:

powershell

  1. 在“新增引數”欄中,輸入以下內容:

-ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"

C:\path\to\your\script.ps1 替換為實際指令碼路徑。

Windows開機自動啟動前端專案指令碼

  1. 儲存任務。這樣,系統啟動時(即登入前)指令碼就會執行,不需要輸入密碼。

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.