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

如何启动Windows 8中使用任务计划程序最小化的批处理文件?-%comspec%方法在Windows 7之后不再工作,windows,batch-file,cmd,Windows,Batch File,Cmd,在Windows XP之后,我总是使用下面的技巧启动批处理文件,并使用Windows任务管理器最小化 发件人: 前提条件:所有批处理文件都有一个退出命令来完成操作。如果不退出,将以命令提示符闪烁结束 这就是我一直使用的: %comspec% /c start /min "C:\Scripts\Destination_inbound_ftp5.bat" 当您将其保存在属性中时,您将看到一个后续对话,询问您是否希望所有这些都是参数。回答“否”,任务将按预期保存 我还阅读了堆栈溢出问题,这使我将“%

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

发件人:

前提条件:所有批处理文件都有一个退出命令来完成操作。如果不退出,将以命令提示符闪烁结束

这就是我一直使用的:

%comspec% /c start /min "C:\Scripts\Destination_inbound_ftp5.bat"
当您将其保存在属性中时,您将看到一个后续对话,询问您是否希望所有这些都是参数。回答“否”,任务将按预期保存

我还阅读了堆栈溢出问题,这使我将“%comspec%”语句替换为“C:\Windows\system32\cmd.exe”,但这也没有改变任何内容

问题是,现在,我没有最小化运行的bat文件,而只得到一个命令提示符,最小化了,但没有执行任何批处理命令。任务计划程序状态保持“运行”:(


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

start命令需要前导的
引号来禁用标题功能。请尝试安排此操作:

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

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

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

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

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

在“程序/脚本”下:

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

在“论点:

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

我不喜欢看到命令窗口弹出然后消失,所以这里有另一个解决方案

首先使用以下单行文本创建
不可见.vbs

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 2, False
下一步也是最后一步,通过以下方式启动cmd或批处理文件:

%SystemRoot%\system32\wscript.exe "invisible.vbs" "myscript.cmd" //nologo
Ta da!这种脚本已经在Windows中内置很长时间了。如果您感兴趣,请在web上搜索“WSH”(Windows脚本主机)。您甚至可以用称为JScript的JavaScript方言编写这样的脚本。

这里有一个解决方案,它将在最小化的窗口中运行批处理文件。与使用
/min
命令的其他解决方案不同,此解决方案不会在屏幕上闪烁新窗口或中断全屏活动。它是这样做的,h欧弗,偷取焦点,我不知道如何避免

首先创建一个名为
run_minimized.vbs
的文件,其中包含以下一行文本:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
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

请注意引号的使用。有一对引号
包含整个命令字符串,还有一对相邻的引号字符
”“
在命令行中的每个位置都会使用普通引号。

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


答案旁边有一个勾号。请确保您接受适合自己的答案,如果需要,您也可以稍后更改。这可能是以最小化/隐藏状态(无闪烁的命令行窗口)运行计划任务的最简单方法要启动任务计划程序控制台,请右键单击要在后台运行的任务并选择“属性”,然后启用“隐藏”选项并单击“无论用户是否登录都运行”。此方法将以静默方式运行计划任务,而不打开任何窗口。请记住为批处理文件添加退出代码,或r成功运行后,命令提示符将保持打开状态。这将不起作用,它仍将创建一个控制台窗口,该窗口将闪烁(并窃取输入焦点)。它不会为批处理文件创建控制台窗口,但会为
cmd
进程(以及
start
命令)创建控制台窗口,因此这与在后台运行它不同(即,完全没有视觉指示)。@Synetech感谢您的评论,但由于start命令的标题要求,
(即,完全没有视觉指示),OP根本没有运行
未在问题中提出。请参阅RationalRabbit的答案,以确保windows不会堆叠(添加“^&exit”命令参数。链接的CMDH服务器已关闭,我在google中找不到任何指向CMDH的其他链接。可能不太受支持。事实上,@fantabolous,整个站点似乎已过时。我可以将其上载到某个地方,但我认为规则不允许指向google Drive或类似存储站点的链接。有人可以告诉我们一些允许的链接吗上传文件的方法?我在这个网站上找到了:这可能是
cmd/c start“”的更好变体/min cmd/c batch.bat
。在我的情况下,对于Windows 10,我必须在这个示例工作的开头添加
%comspec%
。如果需要,您可以向
myscript.cmd
添加参数吗?这需要一个额外的文件,但是最好的解决方案!Neil的解决方案使正在运行的命令窗口完全不可见(隐藏)。如果您只是想将其最小化,请将“False”之前的参数更改为7,而不是0。有关更多选项,请参见上面提供的链接中的“IntWindowsStyle设置”。很好。此复选框有点…隐藏。(不是r。)