在公司中可能會有啟動多個前端的需求,如果早晨到公司之後每個專案都執行一遍命令很麻煩。或者是週末的時候後端同事來加班,但是需要你的前端。你不能專門跑到公司給後端同事啟動一個前端專案吧,這樣太麻煩了。於是我就寫了一個專屬於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指令碼
在
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
中建立一個新的.bat
檔案,比如RunMyScript.bat
。在
.bat
檔案中新增以下內容:
powershell -ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"
其中,將 C:\path\to\your\script.ps1
替換為實際的 PowerShell 指令碼路徑。
儲存並關閉檔案。這樣,Windows 會在啟動時自動執行
.bat
檔案,從而間接啟動你的 PowerShell 指令碼。
注意:
.bat
指令碼只有在輸入開機密碼,登入之後纔會開始執行。
2.2 使用任務計劃程式來啟動 PowerShell 指令碼
開啟任務計劃程式(可以在開始選單中搜索 “Task Scheduler”)。
點選 建立任務。
在“常規”選項卡中,命名任務並選擇 使用最高許可權執行。
在“觸發器”選項卡中,點選 新建,將觸發器設定為 在系統啟動時。
在“操作”選項卡中,選擇 啟動程式,在“程式或指令碼”中輸入:
powershell
在“新增引數”欄中,輸入以下內容:
-ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"
將 C:\path\to\your\script.ps1
替換為實際指令碼路徑。
儲存任務。這樣,系統啟動時(即登入前)指令碼就會執行,不需要輸入密碼。