gpt4 book ai didi

windows - 批量选择菜单?

转载 作者:可可西里 更新时间:2023-11-01 09:20:10 25 4
gpt4 key购买 nike

是否可以有一个批处理脚本来询问用户(在 CMD 中)选择当前 PC 是主机还是客户端?用户使用向上或向下键盘箭头选择一个选项,然后按回车键确认。

我用谷歌搜索了一下,但只能找到用于输入选择号码的代码。

最佳答案

没有第三方程序的帮助,批处理文件无法读取光标控制键。但是,您可以通过此过程使用基于 DOSKEY 命令的有趣技巧:

  1. 清除以前的 DOSKEY 历史记录。
  2. 执行几个读取菜单选项的 SET/P 命令,因此 DOSKEY 历史记录中充满了它们。
  3. 向键盘发送 F7 键。
  4. 执行 SET/P "OPTION=Prompt: ";该命令的输入将通过DOSKEY的选择菜单完成。

虽然此方法需要借助 JScript 编程语言,但它包含在从 XP 开始的所有 Windows 版本中。将下面的代码复制并粘贴为 Batch .BAT 文件:

@if (@CodeSection == @Batch) @then


@echo off
setlocal EnableDelayedExpansion

rem Multi-line menu with options selection via DOSKEY
rem Antonio Perez Ayala

rem Define the options
set numOpts=0
for %%a in (First Second Third Fourth Fifth) do (
set /A numOpts+=1
set "option[!numOpts!]=%%a Option"
)
set /A numOpts+=1
set "option[!numOpts!]=exit"

rem Clear previous doskey history
doskey /REINSTALL
rem Fill doskey history with menu options
cscript //nologo /E:JScript "%~F0" EnterOpts
for /L %%i in (1,1,%numOpts%) do set /P "var="

:nextOpt
cls
echo MULTI-LINE MENU WITH OPTIONS SELECTION
echo/
rem Send a F7 key to open the selection menu
cscript //nologo /E:JScript "%~F0"
set /P "var=Select the desired option: "
echo/
if "%var%" equ "exit" goto :EOF
echo Option selected: "%var%"
pause
goto nextOpt


@end

var wshShell = WScript.CreateObject("WScript.Shell"),
envVar = wshShell.Environment("Process"),
numOpts = parseInt(envVar("numOpts"));

if ( WScript.Arguments.Length ) {
// Enter menu options
for ( var i=1; i <= numOpts; i++ ) {
wshShell.SendKeys(envVar("option["+i+"]")+"{ENTER}");
}
} else {
// Enter a F7 to open the menu
wshShell.SendKeys("{F7}{HOME}");
}

上一个程序的输出示例:

Output example of previous program

更多详情请访问 this post .

关于windows - 批量选择菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com