【发布时间】:2011-07-14 06:39:33
【问题描述】:
我在命令行上使用以下脚本来终止假设的记事本进程(在 Windows XP 中使用 KornShell (ksh),如果这很重要的话):
kill $(tasklist | grep -i notepad.exe | awk '{print 2}')
现在我将这一行放入批处理文件 c:\temp\testkill.bat 中,我认为我也应该能够通过运行批处理文件来终止进程。但是,当我运行批处理文件时,我收到以下关于不平衡括号的 awk 错误:
C:/Temp> ./testkill.bat
C:\Temp>kill $(tasklist | grep -i notepad.exe | awk '{print $2}')
awk: unbalanced() 上下文是:
>>> {打印 $2}) C:/温度>
所以我很困惑为什么当我通过批处理文件运行此脚本时会收到关于不平衡括号的错误,但是当我直接从命令行运行命令时却没有问题?
(我不一定与这种杀死进程的方式有关 - 我还想知道为什么我在命令行上写以下内容:
任务列表 | grep -i notepad.exe | awk '{打印 $2}' |杀死
来自 tasklist/grep/awk 调用的进程 ID 似乎没有被正确地通过管道杀死。
【问题讨论】:
标签: batch-file process awk ksh kill