Имеется .bat файл, который при запуске начинает выполнять различные действия в command line. Есть ли возможность сделать так чтоб функционал .bat файла выполнялся, но при этом чтоб сам comand line был в бэкграунде ( вернее говоря чтоб пользователь не видел, разве что только в TaskManager ) ?
Ответ
Средствами командного процессора этого сделать нельзя. Но можно, например, запустить процесс в скрытом окне, используя запускающий VSB-скрипт... хотя разумнее весь батч переписать на VBS или PS.
UPD:
По просьбе ТС подробнее.
Создай на диске C: каталог \Temp.
Создай в нём 2 файла.
A.BAT
ping -n 1000 127.0.0.1 > c:\temp\ping.txt
B.VBS
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\Temp\a.bat",0
Открой Диспетчер задач, перейди на вкладку "Процессы".
Запусти файл b.vbs на исполнение (просто двойной клик по нему).
Убедись, что:
В процессах появятся, и через некоторое время исчезнут cmd.exe и ping.exe.
В каталоге появится файл ping.txt, и, пока не завершатся процессы по п. 1, файл будет заблокирован.
В файле сохранён протокол работы утилиты ping.
Ни окно CMD, ни окно PING на панели задач не появляется.
И можно не спешить скакать по окнам, пинг будет работать минут 10-15...
Комментариев нет:
Отправить комментарий