36
4

7 回答 7

33

start 命令需要前导""引号来禁用标题功能。尝试安排这个:

%comspec% /c start "" /min "C:\Scripts\Destination_inbound_ftp5.bat"  ^& exit
于 2013-09-19T02:42:54.033 回答
26

假设 Windows 8 与 Windows 7 相同,“退出”只会退出批处理文件(无论如何它都会这样做)。

您需要像这样添加退出代码:

在“程序/脚本”下:

CMD(或 command.exe,或 %comspec%)

在“参数:

/c start "Title" /min "C:\Scripts\Destination_inbound_ftp5.bat" ^& exit
于 2014-12-30T08:28:05.400 回答
7

我不喜欢看到命令窗口弹出然后消失,所以这是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 方言编写此类脚本。

于 2017-02-14T18:27:21.860 回答
5

另一种可能性:一个名为CMDH的小型免费软件程序,它只是在后台运行请求的订单。例如:

cmdh MyScript.cmd

无需在脚本中添加“退出”。测试在 Windows XP SP3 中工作,并且没有理由在 Windows 8 上失败。

于 2014-06-18T16:41:25.170 回答
4

这是来自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

注意引号的使用。有一对引号将整个命令字符串括起来,并且在您在命令行中使用普通引号的每个地方都有"一对相邻的引号字符。""

于 2018-02-02T07:30:14.467 回答
1

正如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命令

于 2021-09-06T16:29:54.593 回答
1

也许它与您的意思不同,但如果我只是使用调度程序运行一个 .bat 文件并在任务属性的常规选项卡上勾选这个“隐藏”框,它就会开始缩小。

在此处输入图像描述

于 2018-09-06T14:44:26.093 回答