从Windows批处理脚本中的文件中读取值

时间:2008-11-18 09:54:13

标签: windows file scripting batch-file

我正在尝试从文件中读取值并在后续命令中使用它。

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

app服务器正在挂起,所以我想获取此值并将其传递给kill命令。所以我的脚本将是

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

有没有一种方便的方法在Windows脚本中执行此操作?

3 个答案:

答案 0 :(得分:14)

这有效:

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

SET使用的/ P参数允许您使用用户输入设置参数值(或者在这种情况下,从文件输入)

答案 1 :(得分:2)

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

这可能会有所帮助!

答案 2 :(得分:1)

如果您知道从命令tasklist返回的流程名称,那么您可以使用流程名称的过滤器运行taskkill,即/FI IMAGENAME eq %process_name%

例如,要终止名为nginx.exe的所有进程运行:

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

哪个“英文读取”:杀死与过滤器/F“IMAGENAME等于nginx.exe”匹配的所有任务(如果需要,通过/FI强制执行)。