Ответ 1
Команде "Пуск" нужны ведущие ""
кавычки", чтобы отключить функцию заголовка. Попробуйте сделать это:
%comspec% /c start "" /min "C:\Scripts\Destination_inbound_ftp5.bat"
После Windows XP я всегда использую трюк ниже, чтобы запустить пакетные файлы, сведенные к минимуму с помощью диспетчера задач Windows.
С http://www.pcreview.co.uk/forums/running-bat-files-minimized-scheduler-t2125918.html:
"prequisite: все ваши командные файлы имеют команду exit, чтобы завершить действия. Если вы не выходите, вы закончите мигание командной строки.
Это то, что я продолжаю использовать:
%comspec% /c start /min "C:\Scripts\Destination_inbound_ftp5.bat"
Когда вы сохраните это в свойствах, вы получите следующий диалог с вопросом, хотите ли вы, чтобы все это было параметрами или нет. Ответ НЕТ, и задача будет сохранена, как и следовало ожидать.
Я также прочитал вопрос о переполнении стека "start% comspec%/c script.cmd" и "start cmd/C second.cmd script.cmd", что заставило меня заменить оператор "% comspec%" на "C:\Windows\system32\cmd.exe ", но это ничего не изменило.
Проблема в том, что теперь, вместо свернутого файла bat bat, я получаю только командную строку, свернутую, но без каких-либо исполняемых команд партии. Статус планировщика задач остается "запущенным" :(
Как это сделать в Windows 8 (64-разрядная версия)? Предпочтительно использовать командные команды старой школы вместо PowerShell (или, что еще хуже, p)
Команде "Пуск" нужны ведущие ""
кавычки", чтобы отключить функцию заголовка. Попробуйте сделать это:
%comspec% /c start "" /min "C:\Scripts\Destination_inbound_ftp5.bat"
Предполагая, что Windows 8 будет такой же, как Windows 7, "выход" только выйдет из командного файла (что все равно будет делать).
Вам нужно добавить код выхода следующим образом:
В разделе "Программа/сценарий":
CMD (или command.exe или% comspec%)
В разделе "Аргументы:
/c start "Title" /min "C:\Scripts\Destination_inbound_ftp5.bat" ^& exit
Другая возможность: небольшая бесплатная программа под названием CMDH, которая просто запускает запрошенные заказы в фоновом режиме. Например:
cmdh MyScript.cmd
Не нужно добавлять "exit" к скрипту. Протестировано, работая в Windows XP SP3, и нет причин, по которым он должен потерпеть неудачу в Windows 8.
Мне не понравилось, что окно командной строки всплыло, а затем исчезло, поэтому вот еще одно решение из 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 scripting host). Вы даже можете писать такие скрипты на диалекте JavaScript под названием JScript.
Здесь вы найдете решение https://ss64.com/vb/run.html, в котором будет запущен пакетный файл в свернутом окне. В отличие от других решений, которые используют команду start
с /min
, этот не будет вызывать новое окно на вашем экране, украсть фокус или прервать полноэкранные действия.
Сначала создайте файл с именем run_minimized.vbs
с помощью этой единственной строки текста:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 2, False
Затем создайте задачу Task Scheduler с помощью действия, чтобы запустить программу 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
Обратите внимание на использование кавычек. Там одна пары кавычек "
заключая строку всей команды, и пару смежных кавычек ""
каждое место вы бы использовать обычный знак кавычки в командной строке.