运行批处理文件时cmd.exe立即关闭

时间:2016-01-07 10:06:45

标签: windows batch-file cmd

我试图创建一个简单的批处理文件,让我从程序列表中选择并根据我的选择运行它们。作为参考,这是我到目前为止:

@echo off 
:menu
echo 1. zsnes
echo 2. Project64
echo 3. MAME
echo 4. PCSX2
echo 5. VBA
echo 6. DOSBox
set /p emu=Pick your emulator [1-6]:
if %emu%=1 goto zsnes
if %emu%=2 goto project64
if %emu%=3 goto mame
if %emu%=4 goto pcsx2
if %emu%=5 goto vba
if %emu%=6 goto dosbox
:zsnes
start /d "C:\Users\*username*\Documents\zsnes\" zsnesw.exe

我刚刚通过zsnes程序输入来测试它。命令提示符启动并将要求我选择。当我选择1时,cmd.exe立即关闭但程序未运行。我创建了一个只包含起始行的脚本,它工作正常。当我手动打开cmd.exe并在其中键入该行也可以正常工作。它只是在我的脚本环境中不起作用。可能是什么导致了这个?任何建议将不胜感激!

3 个答案:

答案 0 :(得分:0)

因为你的if不正确。

尝试

if %emu% == 1 goto zsnes

 if %emu% equ 1 goto zsnes

等等。

IFFOR命令中的一些语法错误导致脚本存在强制。

可能你也想要

:zsnes
start /d "C:\Users\*username*\Documents\zsnes\" zsnesw.exe
goto :eof

避免在其他标签下执行代码。

答案 1 :(得分:0)

在代码末尾或您要停止/暂停cmd.exe的位置写下以下行

timeout \t -1

这将暂停您的cmd屏幕,并通过询问是/否?为您提供关闭它的选项。

答案 2 :(得分:0)

正如我之前所说的那样,"如果"应该是:

    if %emu% == 1 goto zsnes

此外,添加"暂停"在批处理之后,您可以在出现故障时读取错误消息。