嗨我想創建一個批處理文件查詢註冊表項,並根據其值,一個特定的程序是推出。查詢註冊表鍵值的數據,並使用「goto」和「if」基於輸出的值
我嘗試過各種來自互聯網的組合,但我似乎無法得到正確的行爲。
基本上,腳本將檢查定義當前DPI的regkey。根據該值,兩個程序中的一個將運行(PowerShell腳本),然後運行具有特定大小限制的InternetExplorer.Application窗口。
來源:
我已經走到這一步,是這樣的:
@echo off
setlocal
set "Key=HKCU\Control Panel\Desktop\WindowMetrics"
set Type=REG_DWORD
set Value=AppliedDPI
set Data=
for /f "tokens=2,3" %%a in ('reg query %Key% /v %Value% 2^>NUL ^| find /i "%Value%"') do (
set TestType=%%a
set Data=%%b
)
if /i "%Data%"=="0x60" goto Data_96
if /i "%Data%"=="0xc0" goto Data_192
if /i not "%TestType%"=="%Type%" goto :Data_Missing
goto Data_Undefined
:Data_96
echo Data is "%Data%".
goto 96
:Data_192
echo Data is "%Data%".
goto 192
:Data_Missing
echo Key or value not found.
goto leave
:Data_Undefined
echo No action for data "%Data%" defined.
goto leave
:96
powershell.exe -ExecutionPolicy Unrestricted -File somescript1.ps1
goto leave
:192
powershell.exe -ExecutionPolicy Unrestricted -File somescript2.ps1
goto leave
:leave
但它是行不通的。繼續收到「找不到密鑰或值」。 我試過的其他樣本最終都加載了這兩個腳本。 我明顯地設置了錯誤,但不知道它是什麼。
您需要在您的REG QUERY中的%key%變量中加上引號。 'reg query「%Key%」/ v%Value%' – Squashman
感謝@Squashman的回覆。不幸的是,這現在輸出另一個錯誤:'┬áset'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 – FreelanceX
@Squashman謝謝。在你的幫助下,我也回答了我自己的下面的問題('┬áset'是由於'set'在它之前有一個空格'),我現在已經開始工作了!謝謝! – FreelanceX