2008-11-18 143 views
8

我试图从文件读取值并在后续命令中使用它。从Windows批处理脚本中的文件中读取值

我有一个名为AppServer.pid的文件,其中包含我的应用服务器的进程ID(只是数字,它不是属性文件或类似的东西)。

应用程序服务器挂起,所以我想取这个值并将它传递给kill命令。所以我的脚本将像

SET VALUE_FROM_FILE=AppServer.pid # or something 
taskkill /pid %VALUE_FROM_FILE% /f 

有没有一种方便的方法来做到这一点在Windows脚本?

回答

12

这工作:

SET /P VALUE_FROM_FILE= < AppServer.pid 
taskkill /pid %VALUE_FROM_FILE% /f 

与SET中使用的/ P参数,可以使用来自用户的输入设置的参数的值(或在这种情况下,从文件输入)

+0

谢谢。这可能是更直接的解决方案。 – 2008-11-18 11:15:46

2
for /f %%G in (appid.txt) do (SET PID=%%G) 
echo %PID% 
taskkill etc here... 

这可能有帮助!

1

如果您知道进程的名称(从命令tasklist返回),那么可以使用进程名称上的筛选器运行taskkill,即/FI IMAGENAME eq %process_name%

例如,杀死所有命名过程的nginx.exe运行:

taskkill /F /FI "IMAGENAME eq nginx.exe" 

其中“英语阅读”(如果通过/F需要用力)杀死所有任务匹配过滤/FI说:“IMAGENAME等于nginx的。可执行程序”。

相关问题