【发布时间】:2021-02-07 19:10:52
【问题描述】:
所以,我试图通过创建一个批处理文件来让我的生活更轻松一些,当我使用特殊命令时该批处理文件将终止特定进程。事情是这样的:
SET NAME = %1
IF NOT DEFINED NAME SET NAME = "firefox*"
SET fullcommandarg = "IMAGENAME eq " and NAME
TASKKILL /FI %fullcommandarg% /F
但我收到一个错误,即 FI 需要参数。我不是想了解批处理文件是如何工作的,但我想知道我在这里做错了什么以及可能的解决方案是什么。由于 Firefox 通常是我使用此命令关闭的应用程序,因此我将其设置为默认值。我怎样才能让它工作? 提前致谢。 P.S:如果您真的想提供帮助,请仅在此处发表评论。如果您要告诉我去读一本书或类似的东西,我会重复一遍,我并不想学习更多关于批处理文件的知识,而不是我所需要的。对于那些真正想提供帮助的人,欢迎参考链接,以防解释太长或者您没有时间输入它或其他什么。
【问题讨论】:
-
Batch 对
SET语句中的空格敏感。SET FLAG = N将名为“FLAGSpace”的变量设置为值“SpaceN”。使用语法set "name=string"以获得最佳结果 - 不要在分配的值中包含引号 - 它会导致问题。连接字符串的语法是set "longstring=fixed text %shortstring%",而不是and。由于您正在使用%fullcommandarg%执行taskkill但设置了 fullcommandargspace,因此批量替换 NOTHING 为%fullcommandarg% -
@Magoo - 谢谢。我按照您的指示编辑了我的文件,现在它可以工作了。 :D
标签: batch-file