[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
dialmak, я понял. Но мы не привыкли отступать!
for /f ... in ('(echo sel disk %%~A^& echo detail disk^)^|diskpart ...') do
af

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 2 месяца
  • Сообщений: 842
  • Репутация:40

    [+] [-]
Ну да, можно ag

[Цитировать]

    darkalexx4
  • 346
  • Стаж: 9 лет 2 месяца
  • Сообщений: 174
  • Репутация:7

    [+] [-]
  • Откуда: Минск
dialmak, Отлично все отрабатывает, то, что доктор прописал. Благодарю от души :-)

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
Камрады, наткнулся на интересное решение скрытия бат-ника из самого себя без привлечения сторонних утилит.
Powershell -WindowStyle Hidden -Command "& { Clear-Host }"
Физика процесса: powershell запускается в консольном окне "родительского" бат-ника и, отрабатывая флаг Hidden, скрывает его.
Пример:
@echo off
echo Приготовьтесь к исчезновению!
echo/
pause
powershell -WindowStyle Hidden -Command "& { Clear-Host }"
rem Вся дальнейшая работа происходит в скрытом окне
Работает, разумеется, только при наличии в системе powershell, то есть в Вин7 и выше.

[Цитировать]

    Albert
  • 1131
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 160
  • Репутация:12

    [+] [-]
Ander_73, где ты раньше был. Захотелось мне контролировать закрытие программы (почты, так как закрытие её чревато проблемами). Для примера пусть это будет переводчик Dicter.
@echo off
set fullname=C:\Program Files\Dicter\Dicter.exe
set prog=Dicter.exe
:waiting
tasklist |>nul FindStr /B /L /I /C:%prog%&&(ping -n 60 -w 1000 192.168.254.254>NUL & goto :waiting)
start "" "%fullname%"
goto :waiting
Батник можно случайно закрыть, поэтому для скрытия окна батника использовал vbs
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "C:\startprog\startdicter.bat", 0
Set oShell = Nothing
А сейчас красота
@echo off
Powershell -WindowStyle Hidden -Command "& { Clear-Host }"
set fullname=C:\Program Files\Dicter\Dicter.exe
set prog=Dicter.exe
:waiting
tasklist |>nul FindStr /B /L /I /C:%prog%&&(ping -n 60 -w 1000 192.168.254.254>NUL & goto :waiting)
start "" "%fullname%"
goto :waiting
и все. Великолепный результат.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
Albert, кстати, да. Для таких вот "ждунов" - самое правильное применение.
... и теперь уже можно не кривляться с ">nul", всё равно никто это не увидит ag

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
Можно даже ещё круче: окно можно снова сделать видимым!
@echo off
echo/
echo Приготовьтесь к исчезновению!
echo/
pause
powershell -WindowStyle Hidden -Command "& { Break }"
echo/
echo И вот мы призрак!
echo/
ping localhost
powershell -WindowStyle Normal -Command "& { Break }"
echo/
echo Вуаля! Мы снова с вами!
echo/
pause

Ну, и, чтобы два раза не вставать, ещё флаги: Minimized, Maximized. Думаю, и так понятно.

[Цитировать]

    Mazahaka_lab
  • 1832
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 151
  • Репутация:22

    [+] [-]
Ander_73, всё равно окно проскакивает

[Цитировать]

    Albert
  • 1131
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 160
  • Репутация:12

    [+] [-]
Mazahaka_lab,
всё равно окно проскакивает
это очень хорошо, контролька, что батник запущен и все в порядке.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
56837Скрыть окно батника можно самим батником, добавив в начало
При всём уважении, ты сам-то пробовал? Даже чисто принципиально, как команда start может запустить что-то в скрытом окне? В минимизированном - да.
И потом, через start запускается новый отдельный процесс, а не скрывается существующий. Это большая разница.


Последний раз редактировалось: Ander_73 (2018-08-29 10:06), всего редактировалось 1 раз

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
56830всё равно окно проскакивает
Я где-то написал про запуск в скрытом виде? Я написал про скрытие бат-ника из самого бат-ника.
Albert привёл хороший пример: пишем бат-ником некую оболочку, которая запускает процесс и ожидает его завершения. Причем, процесс ожидания может затянуться и окно бат-ника на это время желательно убрать с глаз долой. А потом, к примеру, можно опять его (бат-ник) вытащить на свет божий и продолжить работу.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 3 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Ander_73,
56839 как команда start может запустить что-то в скрытом окне?
/b - Запуск приложения без создания нового окна
56839start запускается новый отдельный процесс, а не скрывается существующий.
Просто батник при старте перезапускает сам себя в скрытом виде.
powershell , конечно, имеет больше возможностей, но есть ограничения - его может не быть, да и он долго запускается.
56839При всём уважение, ты сам-то пробовал?
Конечно.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 3 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Ander_73,
56839ты сам-то пробовал?
Плохо проверил, не заметил, что окно действительно не скрывается.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
56841/b - Запуск приложения без создания нового окна
Именно. Запускается в существующем af

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Всем спецам привет!
Очень нужен cmd, reg, bat или code, который полностью удалял Windows Defender в Windows 10 1803. aa

_________________
Подпись отключена за нарушение правил форума

Страница 12 из 89


Показать сообщения:    

Текущее время: 25-Апр 07:35

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы