7 回答
start 命令需要前导""
引号来禁用标题功能。尝试安排这个:
%comspec% /c start "" /min "C:\Scripts\Destination_inbound_ftp5.bat" ^& exit
假设 Windows 8 与 Windows 7 相同,“退出”只会退出批处理文件(无论如何它都会这样做)。
您需要像这样添加退出代码:
在“程序/脚本”下:
CMD(或 command.exe,或 %comspec%)
在“参数:
/c start "Title" /min "C:\Scripts\Destination_inbound_ftp5.bat" ^& exit
我不喜欢看到命令窗口弹出然后消失,所以这是https://ss64.com/vb/run.html的另一个解决方案......
首先invisible.vbs
用这一行文本创建:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
接下来也是最后,通过以下方式启动您的 cmd 或批处理文件:
%SystemRoot%\system32\wscript.exe "invisible.vbs" "myscript.cmd" //nologo
达达!这种类型的脚本已经内置在 Windows 中很长时间了。如果您好奇,请在网络上搜索“WSH”(Windows 脚本主机)。您甚至可以用称为 JScript 的 JavaScript 方言编写此类脚本。
另一种可能性:一个名为CMDH的小型免费软件程序,它只是在后台运行请求的订单。例如:
cmdh MyScript.cmd
无需在脚本中添加“退出”。测试在 Windows XP SP3 中工作,并且没有理由在 Windows 8 上失败。
这是来自https://ss64.com/vb/run.html的解决方案,它将在最小化窗口中运行批处理文件。与使用该start
命令的其他解决方案不同/min
,此解决方案不会在您的屏幕上闪烁新窗口或中断全屏活动。但是,它确实会窃取焦点。我不知道如何避免这种情况。
首先创建一个以run_minimized.vbs
单行文本命名的文件:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 2, False
接下来,创建您的任务计划程序任务,并wscript.exe
使用以下参数启动程序:
"c:\path\run_minimized.vbs" "c:\path\my script.bat"
根据需要更改路径以指定两个文件的位置。
没有简单的方法可以将参数从任务计划程序传递到批处理文件,同时保留空格和引号,因为 wscript 会从其参数中去除引号。处理带空格的参数的最简单方法是将整个批处理文件命令放入 vbs:
CreateObject("Wscript.Shell").Run """c:\path\my script.bat"" ""arg 1"" arg2", 2, False
注意引号的使用。有一对引号将整个命令字符串括起来,并且在您在命令行中使用普通引号的每个地方都有"
一对相邻的引号字符。""
正如foxidrive的回答中已经提到的那样,问题是由于缺少 title 参数引起的,该参数取自 command 命令行中第一个引用的参数字符串,它是命令行中start
引用的批处理文件路径。由于没有任何东西可以作为要启动的命令/程序,因此默认cmd.exe
启动。
提供一个虚拟标题(甚至可能是空的)可以解决这个问题:
%ComSpec% /C start "" /MIN "C:\Scripts\Destination_inbound_ftp5.bat"
start
但是,如(键入命令提示符窗口)的帮助消息中所述start /?
,当提供的命令/程序是批处理文件时,命令处理器cmd.exe
使用/K
开关运行,从而使命令提示符窗口保持打开状态:
command/program If it is an internal cmd command or a batch file then the command processor is run with the /K switch to cmd.exe. This means that the window will remain after the command has been run. If it is not an internal cmd command or batch file then it is a program and will run as either a windowed application or a console application.
为了防止这种情况,让我们用/C
开关显式指定命令处理器:
%ComSpec% /C start "" /MIN %ComSpec% /C "C:\Scripts\Destination_inbound_ftp5.bat"
所以不需要额外的exit
命令。