【发布时间】:2021-11-07 06:54:15
【问题描述】:
我一直被困在 Windows 脚本中的特定 for 循环中,我找不到任何关于如何将其转换为 git Bash 等效项的帮助。代码在这里:
FOR /F "usebackq tokens=2" %%i IN (`tasklist /v ^| findstr /c:"IRCam_Data_Collector"`) DO taskkill /pid %%i
如果我将它更改为标准 shell,它会给出一个错误
意外标记 `"tokens=2 delims=,"' 附近的语法错误
我的转换后的shell代码版本:
for //f "tokens=2 delims=," %i in (`tasklist //v | findstr //c:"IRCam_Data_Collector"`); do taskkill //pid %i; done
任何帮助将不胜感激。是的,我知道 Git Bash 与 bash 不同。我发现它必须与爆炸变量迭代“For /f”有关。由于我没有使用 Git Bash 的经验,因此我寻求帮助
【问题讨论】:
-
(Git) Bash 非常与 Batch 不同。您不能只更改几个字符并期望它起作用。
-
是的,我知道。我发现它必须与爆炸变量迭代“For /f”有关。由于我没有使用 Git Bash 的经验,因此我寻求帮助
-
标准 bash 甚至没有
tasklisk或findstr或taskkill这样的东西(尽管如果在解释器的 PATH 中有 Windows 原生可执行文件,它们可能是可用的即使是这样)。将其分解,将其分解成小块并测试每个个体是否有效,这将有很多好处;否则,有人需要拥有自己的 Windows 机器才能回答这个问题或测试其他人答案的正确性。 -
很抱歉给您带来麻烦。我对 windows bash 和批处理非常陌生。这根本不是我的魔咒,但是由于 SIEMENS IPC 的一些限制,我不得不使用 Windows 而不是 Linux,并且当 git repo 中有更新时需要这个脚本来终止我的 python 脚本
标签: bash batch-file git-bash