2011-06-11 316 views
1

我必须制作一个简短的Windows shell脚本。请不要逃跑。这并不简单,但我无法找到让这个坦率的原始命令行与我一起工作的方式。Windows:等待进程完成

我只是想运行dxdiag,并对收集到的数据做些什么。

事情是,我不能得到脚本等待dxdiag完成,因为它产生的过程,并继续前进。我需要该文件存在并获得信息,然后再转到下一行。

使用start /wait没有效果,我猜是因为没有涉及到GUI。

我开始认为这是不可能的。请帮忙!

+0

它会帮助,如果你指定的Windows版本... – bbaja42 2011-06-11 07:46:18

+0

我在Windows 7中挣扎,但这应该适用于XP + – slezica 2011-06-11 08:05:15

回答

1

我想是这样的

start /wait dxdiag /x:SomeXmlFile 

而且它在Windows Vista为我工作。

+0

嗯,不适用于Windows 7在我工作。我想我会循环直到文件存在。 – slezica 2011-06-11 08:05:28

+0

@Santiago如果循环直到文件存在,请谨慎使用,因为您可以在dxdiag完成创建之前尝试访问文件(实际取决于dxdiag如何处理文件)。如果 – bbaja42 2011-06-11 08:14:18

+0

我在循环传递之间等待几秒钟。我在写作过程中抓住档案的机会很渺茫,说实话,我满足于这个哈哈。谢谢你的帮助! – slezica 2011-06-11 08:47:39

1

做类似这样的代码的东西:

tasklist /FI "IMAGENAME eq dxdiag.exe" 2>NUL | find /I /N "dxdiag.exe">NUL 
if "%ERRORLEVEL%"=="0" goto next_area_here 
  • 如果错误级别返回为0,输入dxdiag在这种情况下CLOSED
  • 如果错误级别返回为1,输入dxdiag在这种情况下是打开