windows - 以提示方式编写但未执行的批处理窗口命令

标签 windows batch-file cmd

为了避免过于频繁地重复任务,我设置了一个批处理文件(在 WINDOWS 10 中)。它打开几个 CMD PROMPT 到特定目录并启动命令。

对于一种情况,我希望打开 CMD PROMPT,转到特定目录并在 PROMPT 中设置 COMMAND 而无需启动它。然后,我只需单击 ENTER 即可在以后需要时启动该命令。

这是我的代码:

setlocal ENABLEEXTENSIONS
set CordovaProjPath="C:\MyPath\"
start cmd /k "cd /d %CordovaProjPath% && cordova build android"

使用此代码,它会启动命令“cordova build android”。

如果我使用 start cmd/k "cd/d %JCACordovaProjPath% 而不是 start cmd/k "cd/d %JCACordovaProjPath% && cordova build android" 它给我提示:“C:\MyPath>”,我想在它后面写:“cordova build android”而不启动命令。

有什么想法吗?

最佳答案

为了提供可重复执行(如评论中所述),您可以将相关命令放入带有“退出”选项的循环中:

@Echo Off
    setlocal
    Set "CordovaProjPath=C:\MyPath"
    Set "CommandToRun=cordova build android"
:loop
    Cd /D %CordovaProjPath%
    Echo %CommandToRun%
    set QUIT=
    set /p QUIT=Press ENTER to run command or 'Q' to quit:
    if /i "%QUIT%" == "Q" goto :eof
    %CommandToRun%
    goto :loop

与原来的不同,它在与重复循环相同的命令窗口中运行目标命令。根据相关命令的作用,这可能更有吸引力(弹出窗口更少)。但是,某些命令可能会导致主窗口关闭;如果是这种情况,您可以通过两种不同的方式之一恢复为在其自己的窗口中运行该命令。在每种情况下,替换行:

    ...
    %CommandToRun%
    ...

在自己的窗口中运行并保持打开状态

    ...
    start "%CommandToRun%" /wait cmd /k %CommandToRun%
    ...

使用 /k 将使命令提示符窗口在目标命令运行后保持打开状态——如果您需要查看命令的输出并且它没有自己的输出,这可能是合适的暂停。

在自己的窗口运行然后关闭

    ...
    start "%CommandToRun%" /wait cmd /c %CommandToRun%
    ...

使用 /c 意味着命令提示符将在目标命令运行后关闭。如果您不需要查看命令的输出,或者它有自己的暂停,这可能是合适的。

关于windows - 以提示方式编写但未执行的批处理窗口命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39346179/

相关文章:

c++ - 使用 Win32 执行命令

windows - windows批处理中自动回答输入提示

windows - Win7 Virtualbox 在尝试启动 vm : Error loading 'crypt32.dll' : 1790 时出现此错误

php - 如何修复在 URL 中使用 IP 地址而不是 localhost 时访问 WAMP 页面的问题

windows - Windows 批处理脚本中的 %1 和 %1% 有区别吗?

java - 如何在不使用 mvn exec :java 之类的情况下打开控制台 (cmd) 以显示输出的情况下启动不可运行的 Java 文件 (.jar)

python - 为什么我的 WSL Ubuntu 指向不同的 Python 版本?

java - 在Windows中获取用户的组名

batch-file - 自动接受用户输入 Windows Batch

sql-server - BCP 错误 "Unable to open BCP host data-file"