【问题标题】:How do I add an agument that has spaces in it, in a Bach script如何在 Bash 脚本中添加一个包含空格的参数
【发布时间】:2023-01-27 02:42:31
【问题描述】:

我正在创建一个脚本来检查我的 Minecraft 服务器是否正在运行,但我的脚本永远无法运行。 注意:我不太擅长 Bach 脚本编码 我正在使用 Win 10 专业版

我在网上看过并找到了这个

echo %~1
tasklist /FI "IMAGENAME eq Cave SMP Vanilla 1.19.3" /FO CSV > search.log
FINDSTR Cave SMP Vanilla 1.19.3 search.log > found.log
FOR /F %%A IN (found.log) DO IF %%~zA EQU 0 GOTO end

echo server off

:end

echo server on

del search.log
del found.log
pause

但它只是输出 enter image description here (服务器当前正在运行) 我希望它输出server is on

我希望有一个人可以帮助我! 多谢!!!!!

【问题讨论】:

  • 您的系统上没有名为 Cave SMP Vanilla 1.19.3 的可执行进程。大多数可执行进程通常带有 .exe 扩展名。我建议您打开命令提示符窗口,输入findstr.exe /?,然后按[ENTER]键。它应该向您展示 findstr.exe 命令实用程序如何工作,并可用于您所需的目的。完成后,在关闭窗口之前,键入 tasklist /? 并按 [ENTER] 键,以了解有关使用 tasklist.exe 命令实用程序的所有信息。坦率地说,您需要付出更多努力,而不仅仅是指望别人来编写代码。

标签: windows batch-file command-line arguments


【解决方案1】:

请试试这个。 图片名称是notepad.exe,而不是您的Cave SMP Vanilla 1.19.3。您可以尝试替换notepad.exe 并检查它是否适合您。

@echo OFF

TASKLIST /FI "IMAGENAME eq notepad.exe" /FO CSV > search.log
FINDSTR /R /C:"notepad.exe" search.log > found.log
FOR /F %%A IN (found.log) DO ( 
    IF %%~zA EQU 0 ( 
    GOTO :end ) 
)

echo server off
GOTO :end_file

:end
echo server on

:end_file

del search.log
del found.log
pause

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2017-03-23
    • 2018-02-24
    相关资源
    最近更新 更多