您好,我通常只需右鍵單擊并編輯我的腳本,然后使用綠色箭頭通過 PowerShell ISE 運行它們。
但是我需要在批處理檔案中啟動/等待腳本。我希望我的腳本運行,然后讓批處理檔案的其余部分等待 PowerShell 腳本關閉。(因此開始/等待)
它作業正常,但我的問題是:它打開得很好,但無論我是通過選項選擇字母還是我在選擇腳本中設定的數字,它都會根據選擇重新啟動或關閉。
**我有漂亮的照片,但我沒有足夠的代表,所以這里有一些代碼:(
powershell.exe Set-ExecutionPolicy -ExecutionPolicy Bypass
#Main Choice Script
$IP = New-Object System.Management.Automation.Host.ChoiceDescription '&Edit IP', 'Change IP
Address'
$Intro= New-Object System.Management.Automation.Host.ChoiceDescription '&Change Introscreen',
'Change Introscreen'
$Gecko = New-Object System.Management.Automation.Host.ChoiceDescription '&Replace Gecko',
'Change Gecko Folder'
$PCName = New-Object System.Management.Automation.Host.ChoiceDescription '&Host Name', 'Fix
Host Name'
$Firewall = New-Object System.Management.Automation.Host.ChoiceDescription '&Firewall
Settings', 'Fix Firewall Setting'
$Close = New-Object System.Management.Automation.Host.ChoiceDescription '&Close', 'Exit'
$options = [System.Management.Automation.Host.ChoiceDescription[]]
($IP,$Intro,$Gecko,$PCName,$Firewall,$Close)
$title = 'IT Tool'
$message = 'What do you want to do?'
$result = $host.ui.PromptForChoice($title, $message, $options,-1)
switch ('$result')
{
0 { "IP" }
1 { "Intro" }
2 { "Gecko" }
3 { "PCName" }
4 { "Firewall" }
5 { "Close" }
}
我似乎無法讓選項正常運行,我在想:
- CMD 太基礎了,無法打開提示選擇視窗。
- 我的代碼未設定為在 ISE 之外運行
** 我很好,cmd 視窗只是文本而不是彈出視窗,我只是希望它能夠作業。
任何幫助或提示將不勝感激。
uj5u.com熱心網友回復:
您當然可以通過使用內置的 choice.exe 實用程式直接在批處理檔案中使用純文本選單。
@Echo Off
:Menu
ClS
Echo 1. Edit IP
Echo 2. Change Introscreen
Echo 3. Replace Gecko
Echo 4. Host Name
Echo 5. Firewall
Echo 6. Close
%SystemRoot%\System32\choice.exe /C 123456 /M "What do you want to do"
GoTo Item%ERRORLEVEL%
:Item1
Echo Changing IP Address
%SystemRoot%\System32\timeout.exe /T 2 1>NUL
GoTo :Menu
:Item2
Echo Changing Introscreen
%SystemRoot%\System32\timeout.exe /T 2 1>NUL
GoTo :Menu
:Item3
Echo Changing Gecko Folder
%SystemRoot%\System32\timeout.exe /T 2 1>NUL
GoTo :Menu
:Item4
Echo Fixing Host Name
%SystemRoot%\System32\timeout.exe /T 2 1>NUL
GoTo :Menu
:Item5
Echo Fixing Firewall Setting
%SystemRoot%\System32\timeout.exe /T 2 1>NUL
GoTo :Menu
:Item6
Echo Exiting
%SystemRoot%\System32\timeout.exe /T 2 1>NUL
Exit /B
uj5u.com熱心網友回復:
正如您所提到的,您愿意使用batch-file我決定發布一個選項。
如果您的選項是每個條目的單個命令(或者如果您愿意鏈接命令),您可以預設命令并用于choice選擇選項。
筆記!在這里,我添加了一些虛擬命令來演示它是如何作業的:
@echo off & cls
setlocal enabledelayedexpansion
set "sel="Edit IP","Change Introscreen","Replace Gecko",Hostname,Firewall,Close"
set "opt_1=ping localhost"
set "opt_2=echo something"
set "opt_3=echo Replace command here"
set "opt_4=hostname"
set "opt_5=echo firewall command here"
set "opt_6=exit /b"
:menu
set cnt=
for %%i in (%sel%) do (
set /a cnt =1
echo !cnt!^) %%~i
set "_opt!cnt!=%%~i"
)
for /l %%c in (1,1,%cnt%) do set ch=!ch!%%c
choice /C %ch% /M "Enter Selection:"
echo You chose !_opt%errorlevel%!
!opt_%errorlevel%!
pause
set ch= & cls & goto :menu
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/372594.html
