【问题标题】:Windows batch choice command for Windows XP & 2003适用于 Windows XP 和 2003 的 Windows 批处理选择命令
【发布时间】:2010-10-08 16:37:02
【问题描述】:

有没有办法提示用户通过在 XP 和 Windows 2003 服务器上运行的 Windows 批处理脚本进行输入(即:是/否)?似乎有些命令(即:选择)只能在一个操作系统上运行,而不能在其他操作系统上运行。

【问题讨论】:

    标签: windows batch-file cmd windows-xp


    【解决方案1】:

    使用带有 /P 开关的 SET 命令。

    【讨论】:

    • 超时和默认值怎么样?
    【解决方案2】:
    SET /P RESULT=Y or N?
    ECHO %RESULT%
    

    【讨论】:

      【解决方案3】:

      请注意,SET /P 命令不支持与CHOICE 命令相同的所有功能。即:

      • 不限制用户输入有效值
      • 用户必须按回车键
      • 您必须检查大小写差异(例如“A”与“a”)
      • 在一定时间后无法默认选择某个选项

      由于这些原因,我还是更喜欢使用CHOICE 命令而不是SET /P 命令。为此,您只需在批处理文件中包含 CHOICE.COM。您可以通过 MS-DOS 6.22 Supplemental Disk 从 Microsoft 下载 CHOICE.COM。这是链接:

      http://support.microsoft.com/kb/117600

      【讨论】:

      • 我相信 64 位 Windows 7 包括 CHOICE.EXE。至少,我的机器有它,而且我很确定我自己没有把它放在那里。
      • 你是对的@aphoria,我的有choice.exe,我也没有把它放在那里:)
      • DOS 6.22 实用程序的链接已损坏。我可以从 Windows 98 访问 CHOICE.COM,但我的 XP 系统不支持它;来自 32 位 Windows 7 的 CHOICE.EXE 似乎也无法在 Windows XP 系统上运行。虽然我不能说这个测试系统是“典型的”,但我的测试足够彻底,以至于这个答案在某些情况下似乎不可行。
      【解决方案4】:

      这将基本上模仿选择的作用,您需要将其作为子程序放入批处理文件中。我也更喜欢选择,但我需要可以在 Windows XP 上运行的便携式设备。

      然后您可以修改它以接受其他“选择”,但这将不区分大小写并重复提示,直到用户明确输入 Y、y、N 或 n。

      :yesorno
      set /p choice=%2
      if /i NOT %choice% == n (
          if /i NOT %choice% == y goto yesorno
      )
      set "%~1=%choice%"
      goto :eof
      

      然后您将通过以下方式调用此子例程:

      call :yesorno answer "Do you want to continue? [Y/n]: "
      

      到目前为止,它对我来说效果很好。

      【讨论】:

        【解决方案5】:

        例如你可以使用这个:

        SET /P ANSWER=y OR n?
        If "%answer%"=="y" goto yes
        If "%answer%"=="n" goto no
        

        享受吧!

        【讨论】:

          【解决方案6】:

          Windows Millenium 的 CHOICE.COM 在 XP SP3 下可以正常工作。 但是,我的语言是匈牙利语,但您可能会找到它的原始英文变体,例如搜索“windows millenium ebd”。

          http://s000.tinyupload.com/index.php?file_id=57468192666746678653

          【讨论】:

          • 我已将它放在 C:\windows 中,以便可以从任何地方访问。
          • 欢迎来到 SO。请直接在您的答案中提供解决方案。另请阅读:stackoverflow.com/help/answering
          猜你喜欢
          • 1970-01-01
          • 2015-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-10
          相关资源
          最近更新 更多