如何使用Windows 8中的任务计划程序启动批处理文件最小化? - Windows 7后,%comspec%方法不再工作

时间:2013-09-18 19:57:07

标签: windows batch-file cmd

在Windows XP之后,我总是使用下面的技巧来启动使用Windows任务管理器最小化的批处理文件。

来自http://www.pcreview.co.uk/forums/running-bat-files-minimized-scheduler-t2125918.html

  

“prequisite:所有批处理文件都有一个exit-command来关闭操作。如果你不退出,你将以命令提示符闪烁结束。

这就是我一直在使用的:

%comspec% /c start /min "C:\Scripts\Destination_inbound_ftp5.bat"

当您在属性中保存时,您将收到一个后续对话框,询问您是否将所有这些都指定为参数。回答否,任务将按照您的预期保存。

我还阅读了Stack Overflow问题 “start %comspec% /c script.cmd” vs “start cmd /C second.cmd script.cmd” ,这使我用“C:\ Windows \ system32 \ cmd.exe”替换了“%comspec%”语句,但是也没有改变任何事情。

问题在于,现在,我最终只使用了一个命令提示符,而不是最小化的运行bat文件,最小化但没有执行任何批处理命令。任务调度程序状态仍为“正在运行”:(

如何在Windows 8(64位)上完成此操作?可以使用旧式批处理命令而不是PowerShell(或者更糟; p)

6 个答案:

答案 0 :(得分:23)

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

%comspec% /c start "" /min "C:\Scripts\Destination_inbound_ftp5.bat"

答案 1 :(得分:10)

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

您需要添加退出代码,如下所示:

" Program / Script":

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

"参数:

/c start "Title" /min "C:\Scripts\Destination_inbound_ftp5.bat" ^& exit

答案 2 :(得分:5)

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

cmdh MyScript.cmd

无需添加"退出"到脚本。 经过测试,在Windows XP SP3中运行,并且没有理由在Windows 8上失败。

答案 3 :(得分:5)

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

答案 4 :(得分:2)

也许与您的意思不同,但是如果我只是使用调度程序运行.bat文件,然后在任务属性的“常规”选项卡上选中此“隐藏”框,则开始缩小。

enter image description here

答案 5 :(得分:1)

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

请注意使用引号。包含整个命令字符串的一对引号"和在命令行中使用正常引号的每个地方都有一对相邻的引号字符""