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

我试图从文件中读取一个值,并在后续的命令中使用它。

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

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

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

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

这工作:

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

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

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

这可能有帮助!

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

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

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

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