我正在撰寫一個批處理檔案來創建電源計劃。最終目的是將其包含在設定中。但是當我運行安裝程式時,批處理檔案卡住了(安裝程式 bat 檔案沒有暫停)。經過大量的更改和閱讀,我決定重新從頭開始,我發現同一個批處理檔案的作業取決于檔案夾(沒有相對路徑)。這些是事實
我正在運行 Windows 10 專業版
檔案 1:C:\Users\idoblas\Desktop\powerCFG\original\POWERCFG_ES.BAT 檔案 2:C:\Users\idoblas\Desktop\powerCFG\POWERCFG_ES.BAT
這些是我的測驗:
- 檔案 2 是檔案 1 的副本。兩者都具有相同的編碼、檔案大小......我已經比較然后使用 Beyond compare 和 winmerge
- 如果我雙擊檔案 1,它可以正常作業(它會回傳一個要求管理員權限的錯誤),如果我以管理員身份運行它,它也可以正常作業
- 如果我雙擊檔案 2,它會在暫停前卡在 @line 6 行,但以管理員身份執行時它作業正常,這是執行的最后一行:
FOR /F "tokens=6" %%G IN ('powercfg /getactivescheme') DO set activeschemeGUID=%%G
- 我已經更改了檔案 2 的權限,讓每個人都可以完全控制檔案而不做任何更改
- 在其他檔案夾中嘗試并像檔案 1 一樣作業,問題是在我的設定中,行為類似于檔案 2
- 如果我從 cmd shell 運行 cmd.exe /k C:\Users\idoblas\Desktop\powerCFG\powercfg_es.bat 它可以作業,但是從 cmd 視窗如果我執行批處理檔案它也會卡住
這是代碼:
REM @echo off
SETLOCAL
REM Get GUID of current power scheme
REM tokens = 6 for spanish OS, tokens = 4 fo english OS
FOR /F "tokens=6" %%G IN ('powercfg /getactivescheme') DO set activeschemeGUID=%%G
PAUSE
REM Custom power scheme name
set custom_name=Evolv_power_plan
PAUSE
REM Check if it already exists and if it exists, get its GUID
FOR /F "tokens=6" %%G IN ('powercfg -list ^| find "%custom_name%"') DO (
REM custom power scheme with that name already exists
set custom_GUID=%%G
goto :SetCustomActive
)
PAUSE
REM Here we're sure it doesn't exist: copy current active scheme and get GUID of that copy
FOR /F "tokens=6" %%G IN ('powercfg -DUPLICATESCHEME
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324283.html
標籤:批处理文件
上一篇:批處理-獲取包含特殊字符的引數
