为了避免过于频繁地重复任务,我设置了一个批处理文件(在 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/