2008-11-20 95 views
0

我创建了一个简单的批处理文件(.bat),其中包含一系列要自动触发到命令窗口中的命令。批处理看起来像这样:我的Windows批处理文件(.bat)有什么问题?

mmd dll1.dll -mf -aW 
mmd dll2.dll -mf -aW 
mmd dll3.dll -mf -aW 

如果我将一堆cmds复制并粘贴到命令窗口中,它们都会正确执行。但是,如果我尝试直接将批处理文件拖放到命令窗口并执行它,则第一个命令将启动并最终无法成功执行。为什么?

我运行命令的命令窗口需要在命令可以成功运行之前设置很多环境变量。当我拖动批处理文件(使用绝对路径)时,它看起来像我从来没有设置这些变量。不要将批处理文件中的命令与主机命令窗口在相同的上下文中运行?那我该怎么做?

+0

你能提供错误信息吗? – Mnementh 2008-11-20 13:40:08

+0

我不得不看到你得到的页面的屏幕截图。 – 2008-11-20 13:40:15

+0

只是一个特定于我正在运行的命令的错误。像命令无法运行,因为没有定义前提条件。 – 2008-11-21 10:28:10

回答

0

你是否在引用你正在调用的文件名?并且是不同行上的文件名? (如果不是,他们应该是)

1

它正在执行带有相对于.bat文件的路径的文件(而不是其中的那些DLL)?

0

您的PATH设置正确吗? 执行批次时,您是否在正确的目录中? 您是否检查过批处理文件中不可见的无效字符?

1

您的命令中可能存在影响批处理文件的特殊字符,例如%。你需要逃避/删除这些。

否则,这可能与您正在运行的程序有关,或者与终端混淆或者非常依赖其环境。你有任何关于它的信息吗?尝试运行批处理文件中的第一行。

1

您是否尝试在“.bat”中的命令之前添加“call”?

通过在cmd行之前添加“call”,可以保证在子进程结束时父进程继续工作。