С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/446: Рейтинг темы: голосов - 446, средняя оценка - 4.68
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
1

Спрятать окно консоли

10.05.2013, 22:42. Показов 84106. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Еще, вопрос появился, скорей всего банальный.
1. Нужно спрятать окно, консоли, что бы за все время выполнения скрипта, оно не появлялось(вообще).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2013, 22:42
Ответы с готовыми решениями:

Как спрятать консольное окно?
Для полного счастья осталось окно спрятать. cmdow.exe с ключом /HID мне поможет?

Спрятать окно при запуске приложения
Необходимо запустить программу, но, чтобы главная форма находилась в скрытом состоянии. Должен...

Как спрятать папку с картинками при открытии консоли браузера в вкладке sources?
Когда открываю консоль браузера там есть source и там видна папка с картинками, мне её надо спрятать

Спрятать окно чужой программы до его появления
Есть у меня МФУ Canon MG5140. Отличная штука. Позволяет сканировать прямо с самого МФУ. Но при...

26
Модератор
Эксперт JS
5237 / 2110 / 416
Регистрация: 06.01.2013
Сообщений: 4,842
10.05.2013, 22:50 2
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от Subik Посмотреть сообщение
1. Нужно спрятать окно, консоли, что бы за все время выполнения скрипта, оно не появлялось(вообще).
Создать ещё 1 vbs.
Visual Basic
1
2
set sh=CreateObject("Wscript.Shell")
sh.Run "Имя твоего батника", 0
1
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
10.05.2013, 22:51  [ТС] 3
А у cmd нет, такой своей функции?
Допустим в начале hide(просто пример) указал, и все консоль не вылазит.
0
Модератор
Эксперт JS
5237 / 2110 / 416
Регистрация: 06.01.2013
Сообщений: 4,842
10.05.2013, 22:56 4
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от Subik Посмотреть сообщение
А у cmd нет, такой своей функции?
Допустим в начале hide(просто пример) указал, и все консоль не вылазит.
Нет. Ещё можно так, консоль на секунду вылезет:
Bash
1
2
3
4
5
@echo off
(echo.set sh=CreateObject^("Wscript.Shell"^)
echo.sh.Run """%~nx0"" 1", 0)>launch.vbs
if "%~1"=="" (start "" "launch.vbs"&exit /b)
-Код батника
Однако такой батник нельзя будет запустить с параметром.
1
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
10.05.2013, 22:58  [ТС] 5
Ок, спасибо за информацию.
Пойду пробовать.
0
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
08.02.2016, 04:04 6
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Ну раз на эту тему недавно ссылались в теме "Скрытое выполнение батника", то напишу и свой вариант:

Windows Batch file
1
2
3
4
5
6
%1@mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run """"""%~f0"""" :"",0:Close()")& exit/b
 
@echo off
rem И далее -- ваш код...
rem Например:
timeout 5& echo Yes!>"example.txt"
.

Первая строка при скрытом перезапуске пакетного файла уже будет "автозакомментирована".
3
-3 / 2 / 0
Регистрация: 29.10.2013
Сообщений: 190
08.09.2020, 12:16 7
Всем доброго времени суток.
Есть код.

PHP
1
2
3
4
5
6
7
8
9
%1@mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run """"""%~f0"""" :"",0:Close()")& exit/b
 
@echo off
del /f /q "C:\Program Files (x86)\111\disk_d.log"
 
robocopy D:\Users\Secretary\Desktop\   "\\Kanevserver44\Individual\Sekretary\mirror\Desktop"          /MIR /Z /R:2 /W:5 /NP /LOG:disk_d.log
robocopy D:\Users\Secretary\Documents\ "\\Kanevserver44\Individual\Sekretary\mirror\Documents"        /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy D:\Secretary\                 "\\Kanevserver44\Individual\Sekretary\mirror\Secretary"        /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy D:\Disk_sohraneniya\          "\\Kanevserver44\Individual\Sekretary\mirror\Disk_sohraneniya" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
До недавнего отлично работал.
BAT файл запускался по пути "C:\Program Files (x86)\111\СОХРАНЕНИЕ.bat" из планировщика заданий, с наивысшими правами в 12:00 каждый день.
После обновления до windows 8.1 файл завершается ошибкой отказано в доступе.
Если удалить строку.
%1@mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run """"""%~f0"""" :"",0:Close()")& exit/b
То выполнение происходит. НО висит окно командной строки. Подскажите как исправить?
0
6335 / 2762 / 1071
Регистрация: 06.06.2017
Сообщений: 9,404
08.09.2020, 22:51 8
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
НО висит окно командной строки.
Не висит, а отображается, полагаю? Запуск cmd от System скроет окно в нулевой сессии.
1
-3 / 2 / 0
Регистрация: 29.10.2013
Сообщений: 190
08.09.2020, 23:48 9
Запуск в планировщике заданий от имени СИСТЕМА, действительно скрыл появление окошка.

Добавлено через 20 минут
Прописал полный путь для создания log файла, стал создаваться..
Видать он и раньше создавался, но где-то в системном каталоге. Так и есть в System32.

Добавлено через 5 минут
Все работает отлично. Благодарю.
0
6335 / 2762 / 1071
Регистрация: 06.06.2017
Сообщений: 9,404
08.09.2020, 23:50 10
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
И никак не хочет завершаться
А копирование точно закончилось? Кстати, бэкслеши в на концах исходных путей лишние.
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
но где-то в системном каталоге.
В рабочем для cmd на момент запуска. Полный путь, конечно, тут необходим.
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
Все работает отлично. Благодарю.
А, т. е. всё в порядке. Принимается. )
1
-3 / 2 / 0
Регистрация: 29.10.2013
Сообщений: 190
24.11.2020, 17:12 11
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
Все работает отлично. Благодарю.
Вот беда, а с сетью работать не хочет.
Пишет что каталог не доступен. Что наверное и не удивительно, так как логин и пароль прописаны для текущего юзера.
Путь к сетевому каталогу и логин/пароль указаны в "Учетные данные Windows".
Как сие побороть?
0
6335 / 2762 / 1071
Регистрация: 06.06.2017
Сообщений: 9,404
24.11.2020, 19:11 12
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
каталог не доступен.
Источник или получатель? На вкладке Безопасность в свойсвах папки система имеет полный доступ?
0
-3 / 2 / 0
Регистрация: 29.10.2013
Сообщений: 190
29.11.2020, 13:44 13
Получатель.

Добавлено через 55 секунд
Получатель. Система имеет полный доступ.
Кликните здесь для просмотра всего текста

Код
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  Начало: 29 ноября 2020 г. 13:16:15
2020/11/29 13:16:15 ОШИБКА 5 (0x00000005) Получение типа файловой системы назначения \\Kanevserver44\Individual\Sekretary\mirror\Desktop\
Отказано в доступе.


    Источник : D:\Users\User\Desktop\
  Назначение - \\Kanevserver44\Individual\Sekretary\mirror\Desktop\

     Файлы: *.*
	    
 Параметры: *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /Z /NP /R:2 /W:5 

------------------------------------------------------------------------------
0
6335 / 2762 / 1071
Регистрация: 06.06.2017
Сообщений: 9,404
29.11.2020, 17:28 14
А какой у получателя тип ФС?
0
-3 / 2 / 0
Регистрация: 29.10.2013
Сообщений: 190
30.11.2020, 08:16 15
NTFS
Попробовал скрыть через nircmd. Сейчас компьютер занят. Попозже проверю как работает.
Вручную, с запуском в командной строке от админа, скрипт отработал корректно.
0
-3 / 2 / 0
Регистрация: 29.10.2013
Сообщений: 190
02.12.2020, 10:47 16
nircmd. решил вопрос.
Скрипт корректно отработал, при этом за компьютером работал пользователь. Никаких окошек замечено не было.
Конечный код выглядит так.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
nircmd win hide title "%ComSpec%"
@echo off
del /f /q "C:\Program Files (x86)\111\disk_d.log"
 
robocopy D:\Users\User\Desktop   "\\Kanevserver44\Individual\Sekretary\mirror\Desktop"          /MIR /Z /R:2 /W:5 /NP /LOG:"C:\Program Files (x86)\111\disk_d.log"
robocopy D:\Users\User\Documents "\\Kanevserver44\Individual\Sekretary\mirror\Documents"        /MIR /Z /R:2 /W:5 /NP /LOG+:"C:\Program Files (x86)\111\disk_d.log"
robocopy D:\Secretary                 "\\Kanevserver44\Individual\Sekretary\mirror\Secretary"        /MIR /Z /R:2 /W:5 /NP /LOG+:"C:\Program Files (x86)\111\disk_d.log"
robocopy D:\Disk_sohraneniya          "\\Kanevserver44\Individual\Sekretary\mirror\Disk_sohraneniya" /MIR /Z /R:2 /W:5 /NP /LOG+:"C:\Program Files (x86)\111\disk_d.log"
 
exit
Сама утилита nircmd тут https://www.cyberforum.ru/post3574967.html
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
02.12.2020, 14:13 17
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
Никаких окошек замечено не было
Тут явно лукавите, окошко мелькнет очень быстро, но это все же заметно. На vbs, например и незаметно и размер его меньше и скачивать и устанавливать ничего не надо.
0
-3 / 2 / 0
Регистрация: 29.10.2013
Сообщений: 190
02.12.2020, 14:22 18
Цитата Сообщение от alpap Посмотреть сообщение
Тут явно лукавите, окошко мелькнет очень быстро, но это все же заметно.
Это со слов пользователя, что работает за ПК никаких мельканий не видел. :-)
Вполне возможно в этот момент отвернулся от монитора.

Добавлено через 55 секунд
Цитата Сообщение от alpap Посмотреть сообщение
На vbs,
Мне код vbs не знаком.
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
02.12.2020, 23:54 19
Цитата Сообщение от NikolayHAOS Посмотреть сообщение
Мне код vbs не знаком
ничего страшного там нет
Visual Basic
1
WScript.CreateObject("WScript.Shell").Run """%comspec%"" /c """ & WScript.Arguments.Item(0) & """", 0, False
имя bat подаете ему первым параметром: hide.vbs name.bat
0
6335 / 2762 / 1071
Регистрация: 06.06.2017
Сообщений: 9,404
03.12.2020, 00:43 20
Не, тут короче:
Visual Basic
1
CreateObject("WScript.Shell").Run """" & WSH.Arguments(0) & """", 0
И через планировщик так — wscript.exe <path\to\name>.vbs <path\to\name>.bat.
1
03.12.2020, 00:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2020, 00:43
Помогаю со студенческими работами здесь

Как запустить консольное приложение через CreateProcess и спрятать его окно?
Т.е. как запустить досовский exe-шник через CreateProcess и чтобы его окна не было видно?

Окно консоли
Куда вставить {$apptype windows}? Вот код, пожалуйста, вставьте это сразу туда: Unit Unit1; ...

Лог в окно консоли
Всем привет! Имеется программа, работающая Windows Forms. В ней есть, к примеру, следующий код: ...

Скрыть окно консоли
Как скрыть выполнение процесса? У меня из формы вызывается Process.Start'ом программа, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru