Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как скрыть работу bat файла


Как скрыть исполнение файла CMD или BAT

Если вам уже доводилось иметь дело со скриптами CMD или BAT, то наверняка вы заметили в их работе одну особенность: в процессе исполнения скрипта на экране компьютера появляется чёрное окошко командной строки. В этом нет ничего необычного, просто иногда вид этого чёрного прямоугольника действуют раздражающе.

Вы можете скрыть вывод выполняемых в консоли команд, добавив в начало файла CMD или BAT строчку @echo off, но чтобы сделать невидимым окно самой командной строки, потребуется нечто иное.

Решение очень простое. Чтобы скрыть исполнение CMD- или BAT-файла, мы прибегнем к помощи другого скрипта, написанного на языке Visual Basic Script.

Откройте Блокнот, Notepad++ или другой текстовый редактор, скопируйте и вставьте в него следующий код:

Set WshShell = CreateObject("WScript.Shell")
 WshShell.Run chr(34) & "C:\script.cmd" & Chr(34), 0
 Set WshShell = Nothing
 

В данном примере путь к файлу командной строки выглядит как C:\script.cmd, у вас же он может быть другим. Сохраните файл, дав ему произвольное имя и обязательное расширение VBS. Обратите внимание — кавычки в коде должны быть прямыми, иначе при запуске скрипта получите ошибку.

Когда вам нужно будет выполнить файл командной строки, запустите VBS-скрипт, а он в свою очередь запустит ваш «батник», который выполнится в скрытом режиме. Столь раздражающего вас чёрного окна командной строки вы больше не увидите.

Наверное, кто-то из наших читателей спросит: а для чего все эти сложности? Неужели то, что делает файл CMD, не может сделать VBS? Может, просто язык Visual Basic Script знают весьма немногие, а с командной строкой более или менее хорошо знакомы все, кто считает себя продвинутым пользователем.

Скрываем черное окно файла CMD или BAT | Записки Web-разработчика

Всем привет! Сегодня мы поговорим о том, как скрыть «черное окно» консоли команд при выполнении файла вида .CMD или .BAT.

Вы можете скрыть вывод выполняемых в консоли команд, добавив в начало файла CMD или BAT строчку @echo off , но чтобы сделать невидимым окно самой командной строки, потребуется нечто иное.

Решение

Чтобы скрыть исполнение CMD- или BAT-файла, мы прибегнем к помощи другого скрипта, написанного на языке Visual Basic Script.

Откройте Блокнот, Notepad++ или другой текстовый редактор, скопируйте и вставьте в него следующий код:

Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "C:\script.cmd" & Chr(34), 0 Set WshShell = Nothing

В данном примере путь к файлу командной строки выглядит как C:\script.cmd, у вас же он может быть другим. Сохраните файл, дав ему произвольное имя и обязательное расширение VBS.

Обратите внимание: кавычки в коде должны быть прямыми, иначе при запуске скрипта получите ошибку.

Когда вам нужно будет выполнить файл командной строки, запустите VBS-скрипт, а он в свою очередь запустит ваш «батник», который выполнится в скрытом режиме. Столь раздражающего вас чёрного окна командной строки вы больше не увидите.

Спасибо за помощь: https://www.white-windows.ru/kak-skryt-ispolnenie-fajla-cmd-ili-bat/

bat файл в скрытом режиме

На чтение 7 мин. Просмотров 1 Опубликовано

Иногда есть необходимость запустить файл bat в невидимом режиме, спрятать, скрыть окно bat. Например если файл выполняется через планировщик. А может быть там написано много команд и долго выполняется, при этом мелькает у Вас перед глазами. Примеров, для чего нужно скрыть окно bat файла можно привести множество. Так что если Вас заинтересовало, как скрыть окно cmd или как скрытно запустить программу, читайте внимательно.

Предлагаю ознакомиться с предложениями моих партнёров

1. С помощью скрипта vbs. Вот таким скриптом можно скрытно запускать программы, bat файлы, другие файлы.

Для тех, кто не в курсе, просто скопируйте текст в блокнот, поставте свои пути к приложению и имя приложения, сохраните под любым названием – но с расширением vbs, (например – скрываем окно start.vbs)

Пример: скрытно запускаем батник qwerty.bat с диска С

Можно в скрытом режиме запускать не только *.bat но и другие файлы. Например, Вы желаете запустить mp3 без окна проигрывателя, при условии использования Windows Media Player

Если у Вас mp3 привязан к другому проигрывателю, то добавьте в код wmplayer.exe

2. Утилита cmdow ( саму утилиту поместить в C:windowssystem32 )

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

Если строка будет первой, то окно мигнет на долю секунды и будет сразу скрыто.

Если написать в середине, то окно будет скрыто позже, после обработки команд предшествующих cmdow @ /HID.

В статье описываются различные способы того, как спрятать окно cmd во время исполнения batch файла.

Батники, они же batch файлы, бывают очень полезны для запуска целого пакета команд. Но, думаю, многие задаются вопросом, как сделать так, чтобы окно консоли при этом не появлялось на мониторе. Основной упор я сделаю на встроенные возможности системы, упомяну вскользь программы сторонних разработчиков. Попутно мы решим некоторые другие задачи, например, добавив отдельный для батника ярлык.

Как миновать защиту UAC? Обратитесь к статье Как обойти UAC в Windows

Как спрятать окно cmd. Можно ли это сделать средствами самого батника?

Нет. Работа кода производится в среде консоли, а значит окно будет отображаться. С этим нужно смириться: окно будет открытым до тех пор, пока исполняется код. Всё, что вы можете сделать, это предпринять некоторые шаги, дабы окно появлялось на минимальный отрезок времени. В принципе это полезно: работу кода мы можем наблюдать воочию. Но если хочется скрыть окно консоли, для этого придётся использовать сторонние средства: других разработчиков или возможности самой Windows. С неё и начнём.

Запустить batch файл незаметно. Только Windows.

В самом файле “безумству кода” вы пойте песню сами. Я же предложу оптимизировать его содержание для максимально тихой работы. Здесь есть важный момент: чем короче сам код, тем больше вероятность того, что окно консоли появится на короткое время. Если объём большой или прописывается сразу несколько команд, окно может привлечь внимание.

Для примера возьму код скрипта, который позволяет немного изменить системную информацию о компьютере (конкретно, характеристики процессора в Свойствах системы ). Делается это на время сеанса Windows: после перезагрузки всё станет на свои места.

Вобщем, имеем следующий код батника:

Обратите внимание на характеристики процессора . Он и будет отвечать за изменение системной информации. Присваиваем файлу имя spec . bat . Также обратите внимание, я буду использовать только латинские символы в именах файлов и избегать в путях к их месторасположению кириллицы, дабы дорожка к скрипту читались системой правильно. Потому и положу созданный бат-файл в системную директорию – прямо в диск С: .

Однако его запуск сопровождается:

  • появлением окна консоли cmd
  • появлением окна UAC с подтверждением с проделываемыми изменениями (задача, как видите, усложнилась сама по себе, ибо меняется системная информация)

перед исполнением батника появляется окно UAC

От первого окошка я предлагаю вам избавиться с помощью следующего скрипта, оформленного уже в очередной, vbs-файл . А вот и к нему скрипт (смотрите – мой путь к файлу C:spec.bat ):

Назову любым именем с расширением .vbs . Теперь работа батника по нажатии на vbs -ник сопровождается лишь появлением окна Контроля учётных записей : дело в том, что изменения, проделываемые батником касаются реестра, а система логично не пропускает это бесконтрольно. Как запускать программу без UAC – это тема отдельной статьи:

Однако мы немного отвлечёмся от темы статьи и закончим начатое, создав для файла сокрытия консоли (vbs-файла) специальный ярлык. В поле Расположения объекта укажем путь в формате:

Смотрите:

Ярлык готов (можете сменить его рисунок через Свойства ярлыка). Его можно закинуть на выбор в папку Автозагрузки, поместить в Планировщик Windows или запускать двойным щелчком мыши. Окна консоли не будет.

Как спрятать окно cmd? Специальные программы.

Их немало, они легковесны и просты в использовании. Минус – их нужно скачивать, и некоторые устанавливать. Приведу самые популярные из них:

Утилита отечественного производителя. Нужно покупать, стоимости не знаю. Однако с её помощью можно скрыть окно раз и навсегда, и не важно, требуется ли подтверждение UAC или нет – его тоже можно скрыть:

Для 32-х и 64-х битных версий. Установки не требует, поставляется в виде исполнительного файла, который при запуске (от имени админа) сразу просится в корневой каталог Windows. Согласимся, и она теперь с нами:

Утилита много чего умеет, в том числе менять уровень звука, открывать лотки привода и т.д. Для нашего случая, чтобы спрятать окно cmd , можно было бы просто ввести команду в виде:

От окна UAC не избавились (elevatecmd exec и есть часть команды с запросом на UAC), но нам и не обещалось. И постоянно прописывать в консоли полный путь к файлу неудобно, потому сразу создадим ярлык:

Как спрятать окно cmd: batch превратился в exe.

Тоже вариант. Это уже музыка высших сфер. Кому эта утилита неизвестна, знакомьтесь – пригодится: Bat To Exe Converter . Как вы поняли по названию, превращает батник в исполнительный файл с расширением .exe. Качаем, устанавливаем, пользуемся:

Успехов.

Е сли вам уже доводилось иметь дело со скриптами CMD или BAT, то наверняка вы заметили в их работе одну особенность: в процессе исполнения скрипта на экране компьютера появляется чёрное окошко командной строки. В этом нет ничего необычного, просто иногда вид этого чёрного прямоугольника действуют раздражающе.

Вы можете скрыть вывод выполняемых в консоли команд, добавив в начало файла CMD или BAT строчку @echo off, но чтобы сделать невидимым окно самой командной строки, потребуется нечто иное.

Решение очень простое. Чтобы скрыть исполнение CMD- или BAT-файла, мы прибегнем к помощи другого скрипта, написанного на языке Visual Basic Script.

Откройте Блокнот, Notepad++ или другой текстовый редактор, скопируйте и вставьте в него следующий код:

В данном примере путь к файлу командной строки выглядит как C:script.cmd, у вас же он может быть другим. Сохраните файл, дав ему произвольное имя и обязательное расширение VBS. Обратите внимание — кавычки в коде должны быть прямыми, иначе при запуске скрипта получите ошибку.

Когда вам нужно будет выполнить файл командной строки, запустите VBS-скрипт, а он в свою очередь запустит ваш «батник», который выполнится в скрытом режиме. Столь раздражающего вас чёрного окна командной строки вы больше не увидите.

Наверное, кто-то из наших читателей спросит: а для чего все эти сложности? Неужели то, что делает файл CMD, не может сделать VBS? Может, просто язык Visual Basic Script знают весьма немногие, а с командной строкой более или менее хорошо знакомы все, кто считает себя продвинутым пользователем.

Все о BAT файлах

Все о BAT файлах

   Пакетные или batch файлы это обычные текстовые файлы, содержащие наборы команд интерпритатора и имеющие расширение bat или cmd (cmd работают только в ОС семейства NT). Редактировать такие файлы можно при помощи блокнота или любого другого текстового редактора.
В этом FAQ собраны рекомендации, которые были протестированы на Windows 2000. Некоторые команды и переменные, использованные при написании примеров, отсутствуют в 9х.

Как создать batch файл? 

Откройте блокнот и наберите две следующих строки:

@echo This batch file
@pause

Выберите Файл - Сохранить как, выберите Тип файла - Все файлы, в поле Имя файла введите 1.bat и сохраните его в корне диска С, например. Теперь откройте диск С и запустите файл 1.bat. На экран будет выведено две строки.

This batch file
Нажмите любую клавишу для продолжения...

После нажатия любой клавиши окно закроется, т.к. bat-файл выполнен.
Обратите внимание, что символ собаки перед каждой командой в bat-файле указывает на то, что саму команду выводить на экран не надо, а нужно вывести только результат ее работы. Чтобы поэкспериментировать удалите символ собаки из начала каждой строки, сохраните и запустите полученный bat файл.


Команды, используемые в bat файлах 
 
Список команд, которые можно использовать в bat файлах, можно просмотреть, введя в командной строке (Пуск - Выполнить - cmd для Windows семейтва NT или Пуск - Выполнить - command для линейки 9х) команду

help

Результат работы help - список доступных команд с краткими пояснениями к ним. Чтобы получить более подробную информацию по интересующей команде введите в командной строке help имя_команды. Например, чтобы получить подробную справку по ключам команды AT выполните следующую команду:

help AT

В результате, на экран будет выведен список ключей для запуска команды AT из bat файла.
Если bat файл исполняется под управлением Windows (не в чистом DOS-е), то из него можно запускать любые приложения или открывать файлы. Например, нужно автоматически открыть лог-файл работы bat файла по завершении его работы. Для этого достаточно включить в bat файл последней строкой следующую команду:

start имя_файла.txt

Результатом выполнения этой команды станет открытие файла имя_файла.txt, а сам bat файл завершит свою работу. Такой способ хорош, если лог-файл небольшого размера, иначе Блокнот откажется его открывать, предложив использовать WordPad. Но эта проблема так же решаема, что и будет показано в дальнейших примерах.


Как автоматизировать запуск bat файлов 
 
Очень часто необходимо автоматизировать запуск bat файлов для выполнения ими рутинных операций. Для запуска bat файлов по расписанию наиболее подходит Планировщик, входящий в стандартную поставку Windows. С это помощью можно очень гибко настроить запуск пакетного файла в определенные дни или часы, с определенным интервалом. Можно создать несколько расписаний и т.д.
Для локального запуска batch файлов можно пользоваться решениями от третьих фирм, благо платных и бесплатных альтернатив стандартному Планировщику великое множество.
Batch файлы так же могут использоваться как логин-скрипты в доменах. При таком их использовании они будут исполняться при каждом входе пользователя в сеть не смотря на его желание. С их помощью можно автоматизировать сбор информации о машинах или о программном обеспечении, установленном на компьютерах пользователей, принудительно менять настройки Windows, устанавливать незаметно для пользователя программное обеспечение и автоматизировать решение других задач, ручное исполнение которых заняло бы очень много времени.


Как создать файл с произвольным именем из bat файла 
 
Для создания файла в процессе выполнения пакетного файла используется символ перенаправления. Он выглядит так:

>

Т.е. чтобы создать файл нужно перенаправить поток с экрана в файл. Сделать это можно при помощи следующей команды:

@echo Start file>C:\1.txt

После выполнения этой команды в корне диска С будет создан текстовый файл со строкой Start file.
При создании файла в его имени можно использовать системные переменные или их части. Например, можно создать файл-отчет о работе bat файла с именем, равным дате запуска bat файла. Для этого можно использовать следующие строки в bat файле.

set datetemp=%date:~-10%
@echo .>%SYSTEMDRIVE%\%DATETEMP%.txt

Эти две строки работают следующим образом. Сначала в памяти создаем переменную datetemp, которой присваиваем 10 символов справа налево от системной переменной DATE. Таким образом, теперь во временной переменной datetemp содержится только текущая дата. Следующией строкой перенаправляем вывод символа точка в файл, имя которого берем из переменной datetemp, а расширение txt указываем явно. Файл будет создан на системном диске компьютера, где выполняется bat файл.
При сборе администратором информации о компьютерах в сети будет удобнее добавить к имени файла имя компьютера. Это легко можно сделать при помощи следующей команды:

@echo .>C:\FolderName\%COMPUTERNAME%.txt

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


Как создать папку из bat файла 
 
Для создания папки используется команда MKDIR или ее сокращенный аналог MD. Для создания папки из bat файла нужно использовать следующую команду:

MD FolderName

После выполнения такой команды будет создана папка FolderName в папке, откуда запущен bat файл. Чтобы создать файл в отличном от запуска bat файла месте, например в корне диска D, используйте явное указание расположения новой папки. Команда будет выглядеть так: 

MD D:\FolderName

При создании папок можно пользоваться системными переменными. Например, можно создать в корне диска D папку с именем текущего пользователя. Для этого понадобится переменная %USERNAME%, а команда будет выглядеть следующим образом:

MD D:\%USERNAME%

Можно еще более усложнить команду и создать папку с именем текущего пользователя на системном диске его компьютера. Команда для этого будет выглядеть так:

MD %SYSTEMDRIVE%\%USERNAME%

При создании папок или файлов можно использовать любые системные переменные или их части. Следующий пример демонстрирует создание на системном диске компьютера пользователя папки с именем равным текущей дате.

set datetemp=%date:~-10%
MD %SYSTEMDRIVE%\%datetemp%

Эта конструкция работает следующим образом.
Первая команда создает в памяти переменную datetemp, которая будет уничтожена по окончании работы bat файла. То тех пор, пока bat файл не закончил свою работу есть возможность оперировать со значением этой переменной. Переменной datetemp присваивается 10 символов справа налево от системной переменной DATE, т.е. от текущей даты. Переменная DATE имеет формат Дн ДД.ММ.ГГГГ. Первые символы слева - имя дня недели и поэтому мы их отбрасываем и присваиваем временной переменной datetemp только текущую дату.
Этим не ограничивается список возможностей при создании папок. Вы можете опрерировать переменными так, как удобно Вам, создавая папки с уникальными, легко читаемыми названиями. Получить список всех переменных можно при помощи команды SET.


Как перенаправить результат выполнения команд в файл

Часто, при выполнении сложного bat файла в автоматическом режиме проверить результаты его работы бывает затруднительно по многим причинам. Поэтому проще записывать результаты работы команд batch файла в текстовый файл (лог-файл). а потом анализировать правильность работы bat файла по этому логу.
Перенаправить результат работы команд bat файла в лог-файл достаточно просто. Далее будет показано, как это можно сделать.
Создайте bat-файл следующего содержания (скопируйте эти строки в Блокнот и сохраните файл с расширением bat):

@echo off
echo Start %time%
echo Create test.txt
echo test>C:\test.txt
echo Copy Test.txt to Old_test.txt
copy C:\test.txt C:\Old_test.txt
echo Stop %time%

Первая строка отключает вывод самих команд. Таким образом, в лог-файл будут записаны только результаты их выполнения.
Вторая строка записывает в лог-файл время начала работы пакетного файла.
Третья строка записывает в лог-файл пояснение того, что следующая команда создаст файл test.txt
Команда из четвертой строки создает файл test.txt с корне диска С. Файл создается для примера. Эта команда записывает в файл C:\test.txt слово test
Пятая строка выводит в лог-файл пояснение, что следующая команда выполняет копирование файла из одного места в другое.
Команда в шестой строке копирует созданный файл C:\test.txt в файл C:\Old_test.txt, т.е. создается копия файла под новым именем.
Последняя, седьмая строка содержит команду вывода времени завершения работы пакетного файла. В сумме с записью в лог-файл времени начала работы пакетного файла эти два значения времени дают возможность оценить время работы пакетного файла.

Сохраните этот пакетный файл под именем, например, 1.bat
Предположим, что отчет о работе пакетного файла мы бы хотели хранить в отдельной папке и каждый день записывать отчет с новым именем файла, чтобы была возможность в любой из дней обратиться к логам за предыдущие дни. Причем, имя лог-фала хотелось бы иметь в виде даты работы пакетного файла. Чтобы все это реализовать создадим на диске С (например) папку с именем LOG, т.е. полный путь к ней будет выглядеть C:\LOG. Созданный пакетный файл 1.bat будем запускать следующей командой:

1.bat>C:\LOG\%date~-10%.txt

Если пакетный файл будет запускаться из Планировщика, то нужно указать полный путь с bat-файлу. Помните, что если в пути есть пробелы, то надо использовать либо кавычки, либо формат 8.3. Т.е., если путь к bat-файлу C:\Program Files\1.bat, например, то в командной строке Планировщика для запуска bat-файла нужно указать одну из следующих строк:

"C:\Program Files\1.bat">C:\LOG\%date~-10%.txt
C:\Progra~1\1.bat>C:\LOG\%date~-10%.txt

После запуска файла 1.bat в папке C:\LOG будет создан файл с именем, равным дате запуска bat-файла, например, 13.01.2004.txt Это и будет отчет о работе пакетного файла 1.bat
Запуск bat-файла, пример которого показан в первом листинге вверху страницы, указанной выше командой, приведет к созданию лог-файла такого содержания:

Start 19:03:27,20
Create test.txt
Copy Test.txt to Old_test.txt
Скопировано файлов: 1.
Stop 19:03:27,21

Таким образом, для выполнения перенаправления результатов работы bat-файла в лог-файл нужно использовать символ перенаправления > Синтаксис таков:

Путь\ИмяФайла.bat>Путь\ИмяЛогФайла.txt

Расширение лог-файла может быть любым. При желании, отчет о выполнении пакетного задания можно оформить даже в виде страницы html (соответствующие теги могут быть выведены в лог-файл так, как выводились комментарии в примере 1.bat) и скопировать его на корпоративный сервер.


Как автоматически ответить на запрос о подтверждении 
 
Некоторые команды при выполнении требуют подтверждения потенциально опасного действия. Например, такие команды как format или del предварительно запросят подтверждения на дальнейшее выполнение. Если одна из этих команд выполняется в пакетном файле, то запрос на подтверждение остановит выполнение пакетного файла и он будет ожидать от пользователя выбора одного из предложенных вариантов. Причем, если результат выполнение пакетного файла перенаправлен в лог-файл, то пользователь не увидит запроса на подтверждение и batch файл будет выглядеть зависшим.
Для исправления таких неприятностей можно перенаправить нужный ответ в команду. Т.е. выполнить обратное действие для перенаправления вывода результатов работы команды в файл.
Посмотрим на примере как выглядит запрос на подтверждение потенциально опасного действия. Создадим на диске С, например, папку Folder. Создадим в ней или скопируем в нее два любых файла. Далее, откроем командную строку и выполним следующую команду:

del C:\Folder

Эта команда должна удалить все файлы из указанной папки. Но предварительно будет выдан запрос для подтверждения следующего содержания:

C:\Folder\*, Продолжить [Y(да)/N(нет)]?

Выполнение команды будет остановлено до тех пор, пока не будет нажата либо клавиша Y, либо клавиша N. При выполнении пакетного файла в автоматическом режиме, его исполнение остановится.
Чтобы избежать этого используем перенаправление. Перенаправление осуществляется при помощи символа

|

Вертикальная черта говорит о том, что вместо вывода символа на экран его надо «отдать» следующей за символом команде. Проверим работу перенаправления. Выполните в командной строке следующую команду:

echo Y|del C:\Folder

На экране будет показан запрос на подтверждение удаления всех файлов в папке Folder, но уже с положительным ответом (Y). Все файлы из папки Folder будут удалены.
Будьте осторожны с этой командой.


Как отключить вывод на экран команд при выполнении пакетного файла 
 
При выполнении пакетного файла на экран, помимо результатов работы команды, выводятся и сами команды. Чтобы отключить вывод команд, можно использовать символ @.
Чтобы не выводить на экран одну команду, можно поставить знак @ в начале этой команды.

echo Testing

Эта команда выведет на экран команду echo Testing, а на следующую строку - результат ее работы, слово Testing.

@echo Testing

Эта команда выведет на экран только результат работы команды, т.е. слово Testing. Сама команда выведена не будет.
Если на протяжении выполнения всего файла выводить команды на экран не нужно, то проще первой строкой в пакетном файле написать следующую команду:

@echo off

Эта команда отключит вывод команд на экран на протяжении выполнения всего пакетного файла. Чтобы сама команда не выводилась, она начинается с символа @.


Как из одного bat-файла запустить другой 
 
Иногда, при выполнении пакетного файла, возникает необходимость запустить другой пакетный файл. Причем, в некоторых случаях, выполнение основного пакетного файла должно быть приостановлено, пока выполняется вспомогательный файл, а в других вспомогательный файл должен работать параллельно с основным.
Для примера создадим два bat файла. Один с именем 1.bat и содержащий всего одну команду

call 2.bat

Второй с именем 2.bat и также содержащий одну команду

pause

Теперь запустим файл 1.bat Откроется окно, в котором будет предложено нажать любую клавишу для продолжения, после нажатия которой окно закроется. Таким образом, вызов из одного пакетного файла другого при помощи команды call останавливает исполнение пакетного файла до тех пор, пока не завершится выполнение пакетного файла, вызванного командой call.
В другом случае, надо запустить из bat файла либо приложение, либо другой пакетный файл, не прерывая выполнения основного пакетного файла. Такое нередко бывает нужно сделать, например, принудительно открыв лог работы пакетного файла, запланированного на ночь, чтобы с утра, пользователь мог проконтролировать правильность его выполнения. Для этого используется команда start Исправим в файле 1.bat строку на

start 2.bat

и запустим файл 1.bat Теперь открылось окно, в котором для продолжения надо нажать любую кнопку, а окно основного пакетного файла (1.bat) отработав закрылось.
Таким образом, для вызова из одного пакетного файла другого, без остановки работы первого пакетного файла, нужно применять команду start.
Рассмотренные команды start и call могут использоваться не только для запуска других пакетных файлов, но и для запуска любых приложений или открытия файлов.
Например, команда start log.txt, находящаяся в теле пакетного файла, откроет файл log.txt в Notepad без остановки работы пакетного файла.


Как отправить сообщение из bat-файла 
 
Когда пакетный файл исполняется на одной из машин в сети, то удобно проинформировать администратора об окончании его выполнения при помощи сообщения, отправленного на машину администратора. Сделать это можно, включив в пакетный файл команду

net send name Message text

Где name имя машины или пользователя, которому адресуется сообщение, а Message text - текст сообщения. После выполнения этой команды пользователю name будет отправлено сообщение.
Обратите внимание на то, что при использовании в тексте сообщения кириллицы текст должен быть набран в кодировке MS-DOS (866 кодовая страница). Иначе сообщение придет в виде нечитаемых символов. Набрать текст в кодировке DOS можно при помощи любого текстового редактора, поддерживающего эту кодировку. Это может быть, например, FAR. Откройте в FAR пакетный файл на редактирование (F4) и нажмите кнопку F8. В верхней строке редактора должна быть указана кодировка DOS, а снизу, у подсказки о быстрых клавишах, у клавиши F8 должна быть надпись Win, говорящая о том, что текущая кодировка DOS и для переключения в кодировку Win надо нажать F8.


Как автоматизировать удаление файлов по типу 
 
Чтобы очистить диск от временных файлов можно использовать команду

del /f /s /q C:\*.tmp

Где
/f - удаляет все файлы, даже если у них установлен атрибут только чтение
/s - удаляет файлы из всех подкаталогов
/q - отключает запрос на подтверждение удаления файла
C: - диск, на котором будут найдены и удалены файлы. Можно указать не весь диск, а папку, например, C:\WinNT
*.tmp - тип файлов, которые будут удалены
Будьте аккуратны с ключем /q и типами удаляемых файлов. Команда удаляет, не спрашивая разрешения и при указании неправильного типа файлов может удалить лишнего.


Как изменить IP адрес компьютера из пакетного файла 
 
IP адрес можно изменить при помощи команды netsh.
Чтобы правильно сменить IP адрес, сначала надо выяснить текущую конфигурацию. Сделать это можно в командной строке при помощи команды

netsh interface ip show address

Результат работы этой команды - отображение текущей конфигурации сетевого интерфейса. Нас интересует название интерфейса. Предположим, что он называется FASTNET.
Предположим, что нужно сменить IP адрес на 192.168.1.42, адресация в сети статическая, без использования DHCP, шлюз 192.168.1.1, маска 255.255.255.0 В этом случае, команда, которая должна быть выполнена из пакетного файла будет выглядеть следующим образом:

netsh interface ip set address name="FASTNET" static 192.168.1.42 255.255.255.0 192.169.1.1 1

После выполнения этой команды у интерфейса FASTNET IP адрес сменится на 192.168.1.42.
Команда netsh предоставляет широкие возможности по управлению сетевыми настройками из командной строки. Для ознакомления с другими ее функциональными возможностями пользуйтесь справкой при помощи netsh /?


Как узнать имя компьютера из bat файла 
 
Чтобы узнать имя компьютера при выполнении bat файла (чтобы использовать это значение в дальнейшем) используйте команду

hostname

Эта команда возвращает имя компьютера, на котором она запущена.


Как переименовать файлы по маске из пакетного файла 
 
Иногда возникает необходимость переименовать все файлы в папке по шаблону из пакетного файла. Сделать это можно при помощи следующей команды в bat-файле:

for /f "tokens=*" %%a in ('dir /b PATH\*.*') do ren PATH\%%a Prefix%%a

В этой строке надо заменить PATH\ на путь к файлам, которые будут переименованы, а Prefix на те символы, которые будут добавлены к имени файла при переименовании.
Не помещайте пакетный файл в папку, где происходит переименование, иначе он будет переименован тоже. Если в папке, где происходит переименование файлов есть подпапки, то к имени подпапки также будет добавлен префикс, т.е. подпапки будут переименованы как и файлы.
Если указать определенную маску для типов файлов, которые подлежат переименованию, например, *.txt, а не *.* как в примере, то будут переименованы файлы только указанных типов. Другие файлы и папки переименовываться не будут.

Второй вариант:

set thePATH=C:\test
for %%I in (*.txt) do ren "%thePATH%\%%~nxI" "%%~nI.dat"


Как использовать в пакетном файле символ процент 

Чтобы использовать символ процент (%) в пакетном файле его надо написать дважды. Например

echo 50%%

Эта команда в bat-файле выведет на экран 50%. Если же использовать команду echo 50%, то на экран будет выведено только число 50.
Учитывайте эту особенность при использовании символа % в написании пакетных файлов.


Как из пакетного файла сделать экспорт реестра 

Иногда возникает необходимость сохранить в файл определенный куст (ветку) реестра со всеми параметрами в качестве бэкапа или для других целей. Сделать это из пакетного файла можно при помощи такой команды:

regedit.exe -ea C:\environment.reg "HKEY_CURRENT_USER\Environment"

Данная команда при выполнении пакетного файла выгрузит ветку HKEY_CURRENT_USER\Environment в файл C:\environment.reg Когда потребуется восстановить значения параметров в HKEY_CURRENT_USER\Environment, будет достаточно запустить файл environment.reg. Эту команду можно использовать для ежедневного бэкапа настроек программного обеспечения и системы, которые хранятся в реестре.
Не забывайте, что если в пути, по которому должен быть сохранен выходной файл или в имени ветки реестра есть пробел, то их необходимо заключить в кавычки.


Как из пакетного файла импортировать значения переменных реестра 

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

regedit.exe -s C:\environment.reg

Эта команда импортирует в реестр данные из файла environment.reg без запросов на подтверждение за счет использования ключа -s.


Как из bat файла обойти проверку даты 
 
Некоторое программное обеспечение при запуске проверяет текущую системную дату. Если дата больше, чем заложено разработчиком, то программа не запускается. Например, разработчик считает, что версия программы может отработать месяц, а потом пользователь должен будет установить обновленную версию программы. С одной стороны это забота о пользователе, который будет иметь в своем распоряжении свежую версию программы с устраненными недочетами, по отношению к прошлым версиям. С другой стороны, производитель вынуждает пользователя скачивать новую версию даже если пользователя полностью устраивает та версия программы, которая у него установлена. Данную проблему можно легко решить при помощи следующего пакетного файла, который будет запускать программу, дожидаться ее завершения и возвращать дату на ту, которая была до запуска программы.

set tempdate=%date:~-10%
date 01-01-04
notepad.exe
date %tempdate%

В данном примере текущая системная дата сначала сохраняется в переменной, затем (во второй строке) системная дата устанавливается на 1-е января 2004 года, а потом вызывается программа, которая проверяет системную дату. В данном примере это Блокнот. До тех пор, пока открыт Блокнот, пакетный файл находится в ожидании, не завершаясь и не переводя системную дату обратно. Как только Блокнот будет закрыт, пакетный файл продолжит свое выполнение и установит системную дату на сохраненное в переменной tempdate значение, т.е. на то, которое было до запуска пакетного файла.
Не забывайте, что если путь до файла, которым запускается программа, содержит пробелы, то его (путь) необходимо заключить в кавычки. Если путь содержит кириллицу, то при написании пакетного файла необходимо использовать текстовый редактор, поддерживающий кодировку DOS (например, FAR). В противном случае, при запуске пакетного файла будет выведено сообщение о том, что "указанный файл не является внутренней или внешней коммандой...".
Если программа проверяет текущую системную дату только при своем запуске и во время работы больше этого не делает, то пакетный файл можно модифицировать, добавив перед именем исполняемого файла программы оператор start, т.е. наш пример будет выглядеть так:

set tempdate=%date:~-10%
date 01-01-04
start notepad.exe
date %tempdate%

В этом случае, пакетный файл изменит системную дату, запустит программу и не дожидаясь ее завершения вернет дату на ту, которая была до запуска программы.


Как в bat файле дождаться появления определенного файла 
 
Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл

:test
if exist c:\1.txt goto go
sleep 10
goto test
:go
notepad

Такой пакетный файл будет проверять с интервалом 10 секунд наличие в корне диска С файла 1.txt и когда файл 1.txt появится, будет выполнено действие, указанное после метки go, т.е. в этом примере будет запущен Блокнот.
Утилита sleep свободно распространяется в составе Resource Kit. Вы можете её скачать здесь.
Если файл 1.txt большого размера и копируется откуда-то, то может получится так, что пакетный файл проверит его наличие в то время, как файл еще не скопировался или занят другим приложением. В таком случае, попытка выполнить какие-то действия с файлом 1.txt приведет к ошибке. Чтобы этого не произошло пакетный файл можно модифицировать следующим образом

:test
if exist c:\1.txt goto go
sleep 10
goto test
:go
rename c:\1.txt 1.txt
if not errorlevel 0 goto go
del c:\1.txt

Когда файл 1.txt скопировался на диск С не полностью, либо занят другим приложением, попытка его переименовать вызовет ошибку и цикл будет повторяться до тех пор, пока файл не скопируется полностью либо не будет освобожден. После того, как команда rename c:\1.txt 1.txt будет выполнена без ошибки (т.е. файл свободен), то с ним можно выполнять любые действия. В последнем примере это его удаление.


Как добавить комментарии в bat-файл

При написании большого пакетного файла очень полезно добавлять комментарии к его основным блокам. Это позволит с легкостью разобраться в том, что делают эти блоки по прошествии времени.
Комментарии можно добавить несколькими способами. Первый больше годится для написания больших комментариев, описывающих либо весь пакетный файл, либо несколько больших его блоков. Код выглядит следующим образом:

goto start
———————————————————
Этот пакетный файл предназначен
для автоматизации рутинных операций,
выполняемых ночью для синхронизации
содержимого корпоративного ftp-сервера
с ftp-серверами филиалов
———————————————————
Пакетный файл написан 01/01/2004
Последнее исправление внесено 10/02/2004
———————————————————
И т.д.
:start

Такое написание комментария при запуске пакетного файла передаст управление сразу к команде, следующей за меткой start. За это отвечает оператор перехода goto.
Более простые комментарии можно добавить, начиная строки с команды rem или с двух двоеточий, идущих друг за другом.

rem Этот блок устанавливает соединение с удаленным сервером

:: Этот блок проверяет дату изменения файлов

Комментирование больших пакетных файлов (как, в принципе, и любого кода) - хороший тон, который значительно облегчает процесс разбора этих файлов другими людьми или самим автором по прошествии значительного времени с момента написания.


Автоматическое создание резервной копии данных 

Favorite любезно поделился с нами небольшим скриптом, который автоматически создаёт архивную копию важных данных. Вот его сообщение: 

Скрипт архивирует папку файлопомойки (\\SERVER\e$ \Exchange)
и папку с данными юзеров (домашнюю Данные пользователей (\\SERVER\e$ \Departments))
Скрипт не архивирует медиафайлы, так как они занимают вагон места и их потеря у меня не критична 

rem *******************
rem задаём винты где лежат папки для архивирования и винт куда будем бэкапить
rem *******************
SET DRIVE1ST=d:
SET DRIVE2ND=e:

rem *******************
rem пароль на архив
rem *******************
SET PASSWD=qmsdhgsdfgsdfhdsfhsdhf

rem *******************
rem если копировать для надёжности куданить на сетку
rem *******************
rem SET COPYTO=\\shpakk\c$ \!backup

rem ********************
rem *** Проверим путь назначения архива
rem ********************
%DRIVE1ST%
if not exist \!backup md \!backup
if not exist \!backup\Departments md \!backup\Departments
if not exist \!backup\Exchange md \!backup\Exchange
if not exist \!backup\MEDEA_rdisk md \!backup\MEDEA_rdisk
cd \!backup

rem ******************************
rem *** Backup \\SERVER\e$ \Exchange
rem ******************************
SET DIRNAME=Exchange
SET FILENAME=SERVER_Exchange
SET SOURCEDIR=e:\Exchange
rar a -r -m5 -dh -x*.mp3 -x*.fcd -x*.avi -x*.zip -x*.rar -x*.exe -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%\*.*
if not exist %DIRNAME%\%FILENAME%_new.rar goto next2
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%\%FILENAME%.rar %COPYTO%\%DIRNAME%

:next2
rem ***************************
rem *** Backup \\SERVER\e$ \Users
rem ***************************
SET DIRNAME=Departments
SET FILENAME=SERVER_Departments
SET SOURCEDIR=e:\Departments
if not exist %DIRNAME%\%FILENAME%_new.rar goto next3
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_4.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_3.rar %FILENAME%_4.rar
ren %DIRNAME%\%FILENAME%_2.rar %FILENAME%_3.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%_2.rar
:next3
rem *******************
rem это если архив будет большим - кусками бить -v357888k
rem *******************
rem rar a -r -m5 -v357888k -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%
rem *******************
rem архивирование пошло, не берём мультимедиа файлы
rem *******************
rar a -r -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -x*.jpg -x*.tif -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%
goto next4

:next4
rem **********************************
rem *** Create repair disk on \\SERVER
rem **********************************
SET DIRNAME=MEDEA_rdisk
SET FILENAME=MEDEA_rdisk
SET SOURCEDIR=%windir%\repair
%windir%\system32\rdisk.exe /s-
rar a -r -m5 -dh -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%\*.*
if not exist %DIRNAME%\%FILENAME%_new.rar goto next5
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%\%FILENAME%.rar %COPYTO%\%DIRNAME%

:next5

В итоге имеем 3 папки: 

Departments, в ней:
SERVER_Departments_2.rar - 2х дневной давности
SERVER_Departments_3.rar - 3х дневной давности
SERVER_Departments_4.rar - 4х дневной давности
SERVER_Departments_new.rar - НОВЫЙ
SERVER_Departments_old.rar - СТАРЫЙ 

Exchange
Так как архивируем обменник - он нам сильно то и не нужен храним только сегодняшний и вчерашний архивы
SERVER_Exchange.rar
SERVER_Exchange_old.rar 

ну и систему на всякий в папке
SERVER_rdisk
SERVER_rdisk.rar
SERVER_rdisk_old.rar

Как запретить повторный запуск приложения 

Если приложение запускается bat-файлом, то отследить (и запретить) его повторный запуск можно таким образом: 

pslist.exe -e "процесс"
if %errorlevel%==1 start "" "программа" 

pslist - бесплатная утилита, которую можно скачать здесь.

Как создать папку с именем равным текущей дате 

Достаточно часто необходимо создавать папку с именем равным текущей дате и затем копировать в нее, например, бэкап. Есть насколько вариантов создания такой папки: 

MD %SYSTEMDRIVE%\%date:~-10% 

Такая команда создаст в корне системного диска папку с именем равным текущей дате. Эта команда не сработает, если региональные установки отличны от русского и в разделителях даты используется слеш. В таком случае, поможет один из следующих скриптов: 

md %systemdrive%\%date:~0,2%_%date:~3,2%_%date:~6,4% 

или 

md %systemdrive%\%date:~6,4%_%date:~3,2%_%date:~0,2% 

Во втором случае, папки будут сортироваться по алфавиту. 

Как вариант, можно рассмотреть добавление к имени файла текущей даты: 

@echo off
for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%4.%%3.%%2
ren test.txt test%mydate%.txt 

Имя файла test.txt будет переименовано в test2005.03.05.txt


Можно ли зациклить в bat-файле выполнение команды? 

Иногда необходимо создать bat-файл, который будет запускать некую команду через определённый интервал времени. Для решения этой задачи можно воспользоваться Планировщиком и часто запускать bat-файл из него, а можно создать в bat-файле цикл с паузой. 

Цикл организуется при помощи следующих команд: 

:loop
... goto loop 

Паузу можно создать при помощи любой команды. Например, при помощи ping: 

ping -n 1 -w 100000 192.168.254.254 >nul 

-n 1 - выполнить один запрос
-w 100000 - ждать ответа 100 секунд (значение указывается в миллисекундах)
192.168.254.254 - IP адрес, который заведомо не существует в локальной сети, т.е. никогда не ответит на ping
>nul - перенаправление всего вывода команды ping в никуда.


Как в bat-файле создать паузу перед выполнением следующей команды? 

Паузу можно создать при помощи любой команды. Например, при помощи ping: 

ping -n 1 -w 100000 192.168.254.254 >nul 

-n 1 - выполнить один запрос
-w 100000 - ждать ответа 100 секунд (значение указывается в миллисекундах)
192.168.254.254 - IP адрес, который заведомо не существует в локальной сети, т.е. никогда не ответит на ping
>nul - перенаправление всего вывода команды ping в никуда.

Можно использовать утилиту sleep.exe из Ресурскита.

Как закрыть программу через командную строку: подробная инструкция с фото | IT S.W.A.T.

Здравствуйте, друзья сайта itswat.ru. Уверен, что в вашей практике бывали случаи, когда какой-либо процесс негативно сказывался на производительности компьютера. И даже зная имя, не всегда получается прекратить его работу стандартными способами, например, через диспетчер задач. Ещё одна распространённая ситуация – некое приложение неожиданно зависло и закрываться никак не желает. На помощь придёт cmd – это внутреннее средство Windows, позволяющее управлять процессами в операционной системе посредством ввода в специальное окно текстовых команд. Давайте я вам расскажу, как закрыть программу через командную строку. Это совсем несложно.

Оглавление статьи:

  1. Запустить cmd и отобразить все процессы
  2. Закрыть программу
  3. Используем «батник»
  4. Команды для терминала в Линукс

Запустить cmd и отобразить все процессы

Запустить cmd можно несколькими способами:

  1. Нажмите на клавиатуре Win (кнопочка с плывущим окошком) и R (языковой регистр не имеет значения). В появившееся окно «Выполнить» впишите cmd и нажмите ОК.

  1. Нажмите Win и X, запустите нужное средство от имени администратора.

  1. Напишите в поисковой строке Пуска cmd и запустите приложение cmd.exe двумя быстрыми щелчками.

  1. Или же начните писать в поисковой строке Пуска «команды…» и запустите первое приложение из результатов поиска двумя быстрыми щелчками.

Друзья, если вы справились с запуском cmd, значит, точно сможете найти через неё и убить тот самый злополучный процесс.

Увидеть программу, которая зависла, поможет команда tasklist. Её нужно написать в появившемся чёрном окошке (там, где мигает курсор), после чего нажать клавишу Enter. Способ одинаково актуален для всех версий Windows – 7, 8 и 10. Результатом этого действия будет появление списка всех запущенных на ПК процессов.

Закрыть программу

Вам остаётся только отыскать в появившемся перечне программу, создающую проблемы, и запомнить её PID (цифровой идентификатор). Чтобы было более понятно, рассмотрим пример. Я запущу в Windows 10 приложение для проведения видеоконференций, найду Zoom в перечне процессов через командную строку и покажу, как его завершить.

Кроме имени программы, вы увидите несколько столбиков значений. Соседний с названием столбец (цифры) — это PID (идентификатор), а последний – количество килобайт, которое он, работая, отнимает у системы.

В моём случае Zoom обозначился двумя процессами, завершение которых из командной строки возможно и по отдельности, и одновременно посредством команды taskkill. Кроме самой команды, понадобится ещё ввести ключ /f, а также:

  1. Атрибут IM, если мы будем использовать имя программы, тогда завершатся оба процесса. Вот как это выглядит в данном примере: taskkill /f /IM Zoom.exe (после ввода команды нужно нажать Enter).

  1. Атрибут PID, если мы будем вводить не имя, а идентификатор, чтобы убить один конкретный процесс: taskkill /f /PID.

Если вы не знаете, что именно тормозит вашу систему, то можете попробовать с помощью командной строки завершить все процессы и закрыть все окна, которые зависли. Для этого используйте атрибут /fi (установка фильтра) и статус «не отвечает». Команда будет выглядеть так: taskkill /f /fi «status eq not responding».

Используем «батник»

Друзья, если некая программа порядком подпортила вам нервы, постоянно запускаясь и тормозя систему, то вы можете в момент необходимости быстро закрыть её через bat-файл (в простонародье «батник»), который нужно предварительно создать. В таком случае вам не придётся постоянно обращаться к cmd и вписывать одну и ту же команду по десять раз на дню.

Батник сооружается следующим образом:

  1. Создайте новый текстовый документ («Блокнот»), для чего сделайте правый щелчок на пустом пространстве рабочего стола, обратитесь к инструменту «Создать» и выберите соответствующий пункт.

  1. Откройте полученный документ двумя быстрыми щелчками впишите в него команду taskkill /F /IM zoom.exe (у меня имя zoom.exe, вы вписываете название своей проблемной утилиты).

  1. Через «Файл» перейдите к инструменту «Сохранить как…», задайте любое имя (я написал «Закрыть»), после него поставьте точку и напишите расширение bat (смотрите фото).

  1. Нажмите «Сохранить» и на рабочем столе появится батник.

Когда злополучная программа вновь запустится и загрузит ПК, дважды быстро щёлкните по подготовленному bat-файлу, чтобы её закрыть.

Команды для терминала в Линукс

Инструкции, описанные мной выше, подойдут для пользователей Windows. Пользователи «Линукс» также могут закрыть любое приложение через текстовые команды, используя для этого терминал. Он запускается нажатием клавиш Ctrl + Alt + T. Сначала необходимо узнать идентификатор процесса, который требуется убить. В этом поможет команда ps aux | grep [ИМЯ] или pgrep [ИМЯ]. Потом следует использовать команду kill [ID] или pkill [ID]. Чтобы закрыть сразу все окна некой программы, например, браузера, можно использовать команду killall [ИМЯ].

Друзья, на этом я заканчиваю статью. Надеюсь, в ней вы найдёте что-то полезное для себя. Жду ваших вопросов и оценок моей работы в комментариях. До свидания.

Cmd скрыть окно консоли. Как скрыть окно bat, если исполняется файл cmd

Иногда есть необходимость запустить файл bat в невидимом режиме, спрятать, скрыть окно bat . Например если файл выполняется через планировщик. А может быть там написано много команд и долго выполняется, при этом мелькает у Вас перед глазами. Примеров, для чего нужно скрыть окно bat файла можно привести множество. Так что если Вас заинтересовало, как скрыть окно cmd или как скрытно запустить программу , читайте внимательно.

Предлагаю ознакомиться с предложениями моих партнёров

1. С помощью скрипта vbs. Вот таким скриптом можно скрытно запускать программы, bat файлы , другие файлы.

Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "путь к приложению\имя приложения", 0 Set oShell = Nothing

Для тех, кто не в курсе, просто скопируйте текст в блокнот, поставте свои пути к приложению и имя приложения, сохраните под любым названием - но с расширением vbs, (например - скрываем окно start.vbs)

Пример: скрытно запускаем батник qwerty.bat с диска С

Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "C:\qwerty.bat", 0 Set oShell = Nothing

Аналогичный код

Set WshShell = CreateObject("WScript.Shell") RetCode = WshShell.Run("C:\qwerty.bat", 0, False)

Можно в скрытом режиме запускать не только *.bat но и другие файлы. Например, Вы желаете запустить mp3 без окна проигрывателя, при условии использования Windows Media Player

Set WshShell = CreateObject("WScript.Shell") RetCode = WshShell.Run("C:\qwerty.mp3", 0, False)

Если у Вас mp3 привязан к другому проигрывателю, то добавьте в код wmplayer.exe

Set WshShell = CreateObject("WScript.Shell") RetCode = WshShell.Run("wmplayer.exe C:\qwerty.mp3", 0, False)

2. Утилита cmdow (саму утилиту поместить в C:\windows\system32)

Итак, консоль командной строки присутствует во всех версиях операционных систем Windows. Ранние версии ОС поддерживали режим MS-DOS напрямую, что позволяло выполнять простые команды прямо из консоли. Представители же семейства NT, такие как Windows 2000 или Windows Server 2003, работают уже совсем по другим принципам, однако MS-DOS в них тоже поддерживается, но через виртуальную машину (NT Virtual DOS Machine, NTVDM), что позволяет контролировать и администрировать системные ресурсы прямо из консоли командного режима. В качестве интерпретатора командного режима выступает программа cmd.exe, запуск которой осуществляется через меню «Start -> Run». Кроме того, для запуска консоли можно воспользоваться элементом меню «Start -> All Programs -> Accessories -> Command Prompt».

Запустив консоль командного режима, пользователь может управлять ресурсами как локальной системы, так и ресурсами удаленной машины. Существуют команды, выполняющие мониторинг системы и выявляющие критические места в настройках сервера. Отличием работы из командной строки является полное отсутствие больших и громоздких графических утилит. Программы командной строки позволяют более тонкую настройку в виде параметров-ключей, указанных справа от самой команды.

С помощью специальных файлов-скриптов (наборов команд, выполняющихся последовательно или в запрограммированном порядке) администратор может свести к минимуму выполнение рутинных ежедневных операций. Существующие современные утилиты могут запускать такие скрипты с заданной периодичностью без присутствия администратора системы.

Сам администратор может выполнять как одиночные команды, так и список команд, используя специальные управляющие символы (&, |). Например:

Команда 1 & Команда 2 — сначала будет выполнена Команда 1 и только затем Команда 2;
Команда 1 && Команда 2 — только после успешного выполнения Команды 1 будет запущена Команда 2. Существует возможность перенаправить выводимый программой поток напрямую в текстовый файл для дальнейшей обработки. Для этого необходимо использовать управляющий символ «>» и имя текстового файла. Пример вывода содержания текущего каталога в текстовый файл Report.txt при помощи команды dir приведен ниже:
dir> Report.txt

Администратор может запустить несколько копий консоли, вызвав в командной строке программу cmd.exe. Использование вложенной консоли позволяет работать с переменными окружения операционной системы без каких-либо последствий для всей системы в целом, так как после закрытия вложенной консоли изменения переменных окружения не сохраняются. Для контроля над этим процессом используются команды setlocal, endlocal и set.

В современных операционных системах существует множество команд и утилит. Запомнить такое количество различных программ, а тем более их параметров
очень сложно, поэтому одним из самых важных параметров для каждой программы является сочетание символов /?. Выполнив команду с таким параметром, пользователь получит исчерпывающее сообщение о применении утилиты и синтаксисе ее параметров.

Обратите внимание, что на рисунке в левом верхнем углу следующей страницы использован сложный синтаксис. Так, сразу после команды shutdown /? после специального разделителя «|» идет команда more, что позволяет выводить информацию на экран не целиком, а определенными порциями, удобными для дальнейшего чтения.

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

Кто здесь главный?

По своим возможностям консольные программы делятся на:

  • команды управления операционной системой — это такие команды, как shutdown или taskkill;
  • сетевые команды — net и ipconfig;
  • команды для мониторинга системы — tasklist и systeminfo;
  • команды для поддержки файловой системы — dir, mkdir, copy;
  • команды для обслуживания жестких дисков — defrag и diskpart;
  • команды для поддержки службы каталогов (Active Directories) — addrep и dsadd;
  • вспомогательные команды, в этот раздел входят различные утилиты для создания сценариев, настройки принтеров, работы с переменными окружения и т. д.

Рассмотрим типичных представителей каждой группы и позволим себе дать некоторые рекомендациями по использованию включенных в них команд.

Команды мониторинга и диагностики

Для выявления неполадок в аппаратной части и проблем с программным обеспечением предназначены команды мониторинга, такие как systeminfo и tasklist. Эти утилиты впервые появились только в операционной среде Windows Server 2003, поэтому администраторы еще не в полной мере оценили функциональные возможности этих команд. Так, например, теперь не надо залезать в закладку «Свойства» иконки «Мой компьютер» — команда systeminfo напечатает на экране консоли основную информацию обо всех компонентах системы с полной расшифровкой. Параметр /s выведет информацию о любом удаленном компьютере. Например, для выяснения конфигурации компьютера TESTSERVER необходимо выполнить следующую команду:

Systeminfo /s TESTSERVER

А утилита tasklist покажет процессы, запущенные на вашем компьютере.

Утилита tasklist позволяет опрашивать системы, соединенные в сеть. Параметр /v дает возможность получать подробные листинги с полезной информацией, в том числе и об именах пользователей, а параметр /т показывает процессы, загрузившие конкретный dll-файл. Другая полезная утилита — openfiles — позволяет получить информацию обо всех открытых файлах локальной и удаленной операционной системы. В прежних версиях операционных систем Windows приходилось использ

Как скрыть консоль в пакетных файлах

Как скрыть консоль в пакетных файлах

Если мы запустим командный файл, запустив его вручную, мы обычно не против увидеть «черный квадрат» в окне консоли.
Если же, с другой стороны, мы запускаем командный файл по расписанию или удаленно, мы часто предпочитаем вообще не видеть «черный квадрат».

Существует несколько инструментов и методов, позволяющих скрыть окно консоли.

Старт пакетный файл свернутый

Самое простое решение - запустить пакетный файл в свернутом виде.
Пакетный файл по-прежнему будет отображаться на панели задач во время работы.
Для командного файла, запущенного с помощью ярлыка, это может быть «достаточно скрыто».

 START / MIN " ваш заголовок " " d: \ path \ yourbatch.bat " 

См. Этот совет JSIFaq о том, как заставить командный файл запускать другой командный файл скрытым (использует временный файл VBScript).
Обратите внимание, что, поскольку сценарий создается и вызывается пакетным файлом, окно консоли все равно будет отображаться.

Или загрузите и используйте мой RunNHide.vbs или RunNHide.exe.

Сделать командный файл свернуть собственную консоль

Используйте одну из следующих команд в пределах командного файла, чтобы минимизировать в окне консоли этого командного файла:

 КОНСОЛЕСТАЦИЯ / мин 

или:

 SETCONSOLE / свернуть 

или:

 TITLE MinimizeMePlease FOR / F %% A IN ('CMDOW ˆ | FIND "MinimizeMePlease"') DO CMDOW %% A / MIN 

Сделать батник скрыть собственную консоль

Используйте одну из следующих команд в пределах командного файла, чтобы скрыть окно консоли этого командного файла:

 CONSOLESTATE / Скрыть 

или:

 SETCONSOLE / скрыть 

или:

 НАЗВАНИЕ HideMePlease FOR / F %% A IN ('CMDOW ˆ | НАЙТИ "HideMePlease"') DO CMDOW %% A / HID 

или, используя KiXtart:

> Темп.kix ECHO SetConsoleˆ ("Скрыть" ˆ) KIX32.EXE Temp.kix DEL Temp.kix 

Спойлер: полностью Скрыть консоль невозможно в стандартных интерпретаторах команд CMD.EXE или COMMAND.COM.
Все методы скрытия консоли, которые должны быть вызваны из командного файла, всегда будут показывать по крайней мере короткую «черную вспышку» открываемой консоли, прежде чем она будет скрыта.
Следовательно, «маскировка» консоли должна быть запущена за до запуска командного файла , что означает использование альтернативного языка сценариев для запуска скрытого интерпретатора команд .

Чтобы восстановить видимость консоли , используйте:

 CONSOLESTATE / Показать 

или:

 SETCONSOLE / показать 

или:

 НАЗВАНИЕ HideMePlease FOR / F %% A IN ('CMDOW ˆ | НАЙТИ "HideMePlease"') DO CMDOW %% A / VIS 

или, используя KiXtart:

> Temp.kix ECHO SetConsoleˆ ("Показать" ˆ) KIX32.EXE Temp.kix DEL Temp.kix 

Старт пакетный файл свернутый

Если окно консоли уже отображается, но вы хотите запустить другой пакетный файл в свернутом виде, используйте одну из следующих команд:

 START / MIN  d: \ path \ yourbatch.летучая мышь  

или:

 CMDOW.EXE / RUN / MIN  d: \ path \ yourbatch.bat  

Старт командный файл скрытый

Если окно консоли уже отображается, но вы хотите запустить еще один скрытый командный файл, используйте одну из следующих команд:

 PSEXEC -d CMD.EXE / C  d: \ путь \ yourbatch.bat  

или:

 CMDOW.EXE / RUN / HID  d: \ путь \ yourbatch.bat  

Запустить командный файл полностью скрыто

От

до полностью скрыть консоль, должен использоваться исполняемый файл Windows (GUI) или альтернативный язык сценариев с интерпретатором на основе графического интерфейса (например, VBScript с WSCRIPT.EXE).
, а не , используйте следующие команды в пакетном файле, так как этот пакетный файл будет запускаться в (видимом) окне консоли.

 RUNNHIDE.EXE  d: \ путь \ yourbatch.bat  

или:

 WSCRIPT.EXE RunNHide.vbs  d: \ path \ yourbatch.bat  

или:

 HSTART.EXE / NOCONSOLE "d: \ some dir \ yourbatch.bat" 

Убедитесь, что командный файл закрывает собственное окно при любых обстоятельствах , потому что вы не сможете увидеть , закрывается ли оно или продолжает работать «вечно».

Примечание: CMDOW, HSTART и PSEXEC могут иногда (ошибочно) обвиняться в вредоносном ПО некоторыми антивирусами и сканерами вредоносных программ.
Это не так, но они, безусловно, могут быть использованы в целях "меньшего уважения".

Последняя загрузка страницы: 2019-02-21, 09:59

.

Как скрыть командную строку для командного файла

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.Пакетный файл

- Как скрыть CMD / BAT БЕЗ использования Vbscript

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Как скрыть и показать файл в командной строке Windows

Обновлено: 21.05.2018 компанией Computer Hope

Существует два метода скрытия файлов в MS-DOS или командной строке Windows без установки на компьютер какого-либо дополнительного программного обеспечения.

Скрыть с помощью команды attrib

Первый способ - использовать команду attrib, как показано ниже.

 attrib + h c: \ autoexec.bat 

Эта команда скрывает ваш файл autoexec.bat, поэтому обычный пользователь, просматривающий ваш жесткий диск, не сможет его увидеть.Чтобы сделать файл невидимым, используйте -h вместо + h, чтобы строка выглядела как в примере ниже.

 attrib -h c: \ autoexec.bat 

Хотя файл скрыт, кто-то все равно может ввести edit c: \ autoexec.bat и отредактировать файл, или если кто-то наберет attrib , в нем будут перечислены все файлы и их атрибуты.

  • См. Нашу страницу команд attrib для получения полной информации об этой команде и других примерах.

Скрыть с использованием символов ASCII

Другой метод использует символы ASCII при создании каталога или его переименовании и предотвращает доступ к каталогу для всех, кто использует раннюю версию Windows и MS-DOS.Ниже приведены шаги, необходимые для создания каталога с этими символами.

  1. Введите md (удерживая Alt и введите 987, продолжая удерживать Alt, после ввода отпустите Alt и появится сплошной блок).
  2. Нажмите Enter, чтобы создать каталог.

Чтобы попасть в этот каталог, введите cd, затем пробел и удерживайте Alt при вводе 987, чтобы получить блок. Нажав Enter, вы сможете попасть в каталог.

Заметка

Windows 3.x и Windows 95 не могут получить доступ к этим каталогам и должны быть доступны через DOS.Однако Windows 98 и более поздние версии имеют возможность открывать эти каталоги изнутри Windows. Следовательно, если вы используете этот метод для обеспечения конфиденциальности или безопасности, вашу процедуру можно обойти.

Я не могу вспомнить, какие символы набрал. Как мне удалить каталог сейчас?

См. Определение словаря ASCII, в котором приводится полный список символов ASCII, или используйте знак "?" подстановочный знак, где находится символ ASCII.

.

Как заблокировать папку без какого-либо программного обеспечения с помощью пароля «Операционные системы :: WonderHowTo

Вы можете легко заблокировать любую папку на вашем компьютере с Windows с помощью простого взлома Блокнота. Создав пакетный файл, вы можете скрыть папку и потребовать ввести пароль, прежде чем она станет видимой и доступной. Это отличный инструмент для блокировки конфиденциальной информации, такой как изображения, финансовые отчеты и многое другое.

Этот прием работает практически с любой версией операционной системы, включая Windows 10, Windows 7, Windows XP, Windows 98 и так далее.

Шаг 1. Откройте Блокнот

Начните с открытия Блокнота, либо из поиска, либо из меню «Пуск», либо просто щелкните правой кнопкой мыши внутри папки, затем выберите «Создать» -> «Текстовый документ».

Шаг 2: Добавьте код в документ

Теперь просто скопируйте текст ниже и вставьте его в свой документ.

@ECHO OFF
if EXIST "Панель управления. {21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Private goto MDPrivate
: CONFIRM
echo Вы уверены, что заблокировали эту папку? (Да / Нет)
set / p "cho =>"
if% cho% == Y goto LOCK
if% cho% == y goto LOCK
if% cho% == n goto END
if% cho% = = N goto END
echo Неверный выбор.
goto ПОДТВЕРДИТЬ
: LOCK
ren Private "Панель управления. {21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib + h + s "Панель управления. {21EC2020-3AEA-1069-A2DD-08002B30309D}"
эхо-папка заблокировано
goto Конец
: РАЗБЛОКИРОВАТЬ
echo Введите пароль для разблокировки защищенной папки
set / p "pass =>"
if NOT% pass% == wonderhowtogoto FAIL
attrib -h -s "Панель управления. {21EC2020-3AEA- 1069-A2DD-08002B30309D} Панель управления "
ren". {21EC2020-3AEA-1069-A2DD-08002B30309D} "Частная
эхо-папка успешно разблокирована
goto End
: FAIL
echo Неверный пароль
goto end
: MDPrivate
md Private
echo Private успешно создан
goto End
: End

Шаг 3: Редактировать имя и пароль папки

Вставив текст, вы можете изменить имя заблокированной папки, а также пароль, используемый для ее разблокировки.Имя папки по умолчанию - «Личная», а пароль по умолчанию - «wonderhowto».

Шаг 4: Сохраните пакетный файл

Теперь сохраните файл под любым именем, но убедитесь, что имя заканчивается на «.bat», и что вы выбрали «Все файлы» в раскрывающемся списке при сохранении. Кроме того, если вы открыли Блокнот напрямую, а не щелкали правой кнопкой мыши, не забудьте соответствующим образом изменить место сохранения.

После сохранения ваш файл в выбранной папке должен выглядеть следующим образом:

Шаг 5: Создать папку

Теперь дважды щелкните по только что созданному пакетному файлу (или выберите и нажмите Enter).Вы заметите, что появилась новая папка.

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

Шаг 6. Заблокируйте папку

Когда вы будете готовы заблокировать папку, просто дважды щелкните пакетный файл (или выберите и нажмите Enter), затем выберите «y» в появившемся окне и нажмите Enter. .

Вы заметите, что ваша папка исчезла.

Шаг 7. Доступ к скрытой и заблокированной папке

Теперь, когда вам понадобится доступ к папке, просто дважды щелкните пакетный файл, введите пароль и нажмите Enter.

Чтобы повторно заблокировать (и скрыть) папку, просто снова нажмите командный файл. И помните, вы можете назвать командный файл и папку как хотите, вы можете убедиться в этом трюке в нескольких местах на вашем компьютере с Windows.

Сегодня неделя Черной пятницы на WonderHowTo! Не пропустите все крупные распродажи в магазинах Gadget Hacks и Null Byte. А если вы хотели посещать некоторые занятия, не влезая в долги, ознакомьтесь с нашими лучшими предложениями на онлайн-курсах для различных наборов навыков.Не пропустите эти огромные скидки:

См. 10 лучших продаж BF от Gadget Hacks на онлайн-курсах (скидка до 99%)>

См. 13 лучших продаж BF Null Byte на онлайн-курсах (до 99%) выкл)>

Обложка и скриншоты через WonderHowTo .

cmd - Могу ли я замаскировать вводимый текст в bat-файле?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Смотрите также