Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
часть 1 | часть 2 | часть 3 | часть 4 | часть 5
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору > Автоматизация администрирования
Microsoft Windows > Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
> Описание Cmd.exe > Command shell overview
> Using batch files > Using batch parameters > Using filters > Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Выполнение BAT-скриптов без вызова окна консоли
· cmdow - изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· blat - отправка почты из консоли
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)
 
· Архив всевозможных версий cmd.exe (от Windows NT 3.51 до Windows 10) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 4.0, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на текущей версии ОС. Ссылки wdho.ru tinyupload.com dbree.org
 
· Сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 38025 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: Maz, 07:16 24-04-2021
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mithridat1

Код:
for /f "usebackq delims=" %%i in (`""C:\Windows\System32\tasklist.exe" /FO TABLE | findstr /R /C:"^^iexplore""`) do echo %%i

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 09:51 30-03-2022
fscpsd



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Странная штука с языком консоли.
Понадобилось тут на Вин7 с русскоязычной локалью поставить ОпенВПН. Там когда его ставишь, нужно в консоли поработать с экзешников опенвпновским. И вот после того как поработаешь, консоль внезапно становится на английском языке, а если где и попадаются русские буквы, то они проглатываются, если не соответствуют англоязычным. Вот так выглядит:

Это как так, вообще, кто-нибудь может объяснить?
Если данный сеанс консоли закрыть, то новый как обычно работает, без подобного глюка.

Всего записей: 583 | Зарегистр. 16-09-2010 | Отправлено: 11:54 07-04-2022
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ни в консоли, ни через батник не срабатывает

Код:
if exist notepad.exe echo ok

ЧЯДНТ?

Всего записей: 2508 | Зарегистр. 24-10-2002 | Отправлено: 09:04 09-04-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Death_INN
нотепад.ехе в текущем каталоге ищем?

Всего записей: 10853 | Зарегистр. 11-03-2002 | Отправлено: 09:19 09-04-2022
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, notepad.exe находится в системных каталогах. A if exist ищет только в текущем каталоге?

Всего записей: 2508 | Зарегистр. 24-10-2002 | Отправлено: 09:38 09-04-2022
fscpsd



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
Он вообще ничего не ищет, только проверяет указанное вами условие. Указанное вами условие подразумевает именно текущий каталог.

Всего записей: 583 | Зарегистр. 16-09-2010 | Отправлено: 09:43 09-04-2022
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Часть программ помещаю в папку c:\windows чтобы не указывать полные пути, но нужно проверить находится ли в этом каталоге программа. Думал, что if exist также проверяет существование файла в каталогах указанных в переменной окружения PATH, а не только в текущем каталоге

Всего записей: 2508 | Зарегистр. 24-10-2002 | Отправлено: 09:51 09-04-2022
fscpsd



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN

Цитата:
Думал, что if exist также проверяет существование файла в каталогах указанных в переменной окружения PATH, а не только в текущем каталоге

Это было бы совершенно неправильное поведение, поскольку если проверять по множеству каталогов, тогда, естественно, при некоторых условиях может быть и множество разных результатов — где-то этот файл ЕСТЬ, а где-то его НЕТУ. И вот как тогда быть несчастному работяге "if exist"? Подробный доклад по каждому каталогу вам делать? Таким фокусам он не обучен, для этого другие специалисты есть.

Всего записей: 583 | Зарегистр. 16-09-2010 | Отправлено: 10:00 09-04-2022 | Исправлено: fscpsd, 10:01 09-04-2022
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fscpsd, ясно, тогда в батнике буду проверять так:
if not exist %SystemRoot%\file.exe exit /b

Всего записей: 2508 | Зарегистр. 24-10-2002 | Отправлено: 10:15 09-04-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Death_INN

Цитата:
 
@echo off
 
call :GetPath notepad.exe
echo notepad.exe - "%NPEXE%"
pause
goto :eof
 
:GetPath
set "NPEXE=%~$PATH:1"
goto :eof
 

Всего записей: 10853 | Зарегистр. 11-03-2002 | Отправлено: 10:33 09-04-2022 | Исправлено: Pasha_ZZZ, 10:34 09-04-2022
vangelys

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли на Windows 11 обойти известный баг, когда CTRL+C закрывает окно командной строки. Необходимо использовать KernRate, который запускается из командной строки от администратора. Для получения лога нужно нажать CTRL+C, но обозначенное сочетание просто закрывает окно cmd, хотя во время анимации закрытия окна хорошо видно, что лог в нем появился.

Всего записей: 39 | Зарегистр. 08-11-2014 | Отправлено: 10:24 10-04-2022
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
Смотря какая цель проверки. Можно так:

Код:
@echo off
del /f /q exitcode.tmp
start /B "" "cmd /c notepad.exe || echo ERROR>exitcode.tmp"
set /p exitcode=<exitcode.tmp
IF /I "%exitcode%"=="ERROR" (echo notepad.exe not found & exit)
echo START JOB
...  

Мне не очень нравится вариант с файлом exitcode.tmp, но по другому у меня errorlevel не возвращается
 
Или можно так, но тут, как правильно написал fscpsd возникает неоднозначность, так как файл может быть в нескольких каталогах из PATH

Код:
@echo off
set fileexist=0
for %%A in (%PATH%) do if exist %%A\notepad.exe echo %%A & set fileexist=1
echo %fileexist%
 

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 14:51 10-04-2022 | Исправлено: Fenrizz, 08:36 11-04-2022
Zabatik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, уважаемые специалисты. Выручайте.
 
Как убить конкретную песочницу в sandbox через бат?
 
Есть батник на включение процесса и он работает отлично.  
@echo off
 
start "" "D:\Sand\Start.exe" /box:2 /elevate D: и т.д  
 
а как написать бат-файл для того что бы выключить конкретную песочницу box:2 со всеми её процессами?
 
Всех с днём космонавтики, кстати

Всего записей: 2 | Зарегистр. 12-04-2022 | Отправлено: 16:50 12-04-2022
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zabatik
А как можно отличить  эту конкретную песочницу от всех остальных? Если по заголовку, то так

Код:
start "Sandbox1" "D:\Sand\Start.exe" /box:2 /elevate D: и т.д  

 

Код:
taskkill /T /fi "WINDOWTITLE eq Sandbox1"

 
https://ss64.com/nt/taskkill.html

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 07:05 13-04-2022 | Исправлено: Fenrizz, 07:08 13-04-2022
Roman_Hayretdinov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста: команда DIR выводит дату и время изменения файла независимо от региональных настроек и локализации конкретной Винды? Я начал сомневаться, потому что говорят, что команда echo %date% %time% выводит разные результаты в зависимости от разных региональных настроек Windows
 
И ещё вопрос: где можно почитать про разные тонкости использования командной строки? Про которые не написано во встроенной справке? А то я только недавно узнал, например, что оказывается можно писать так:

Код:
cd ..\..
cd Назв* - вместо cd Название папки
cd /d F:New Folder - вместо cd /d F:\Files\Backup\New Folder (если вы находитесь на другом диске, но последняя папка, в которой вы были на диске F - F:\Files\Backup)

И про разные скрытые системные переменные, типа %CmdCmdLine% и %__CD__% ?

Всего записей: 47 | Зарегистр. 19-12-2021 | Отправлено: 13:38 13-04-2022
BorlandIMHO

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roman_Hayretdinov

Цитата:
 команда DIR выводит дату и время изменения файла независимо от региональных настроек и локализации конкретной Винды?
Зависимо от локальных настроек формата даты/времени {и часового пояса}.

Используются "Краткая дата" и "Краткое время".
Про часовой пояс: в файловой системе время/дата файла записаны в UTC, команда DIR отображает "местное" (т.е. с поправкой на часовой пояс).


----------
http://www.imho.ws

Всего записей: 1600 | Зарегистр. 12-10-2006 | Отправлено: 14:06 13-04-2022
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roman_Hayretdinov

Цитата:
И про разные скрытые системные переменные, типа %CmdCmdLine% и %__CD__% ?

здесь

Всего записей: 2508 | Зарегистр. 24-10-2002 | Отправлено: 14:33 13-04-2022
Susie7



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не дадите мне батник, убивающий зависшую игру?
А то она так виснет, что только перезагрузиться можно, а потом несколько раз пытаться винду запустить.
8.1х64, кстати.
 
Добавлено:
.exe=kill  - так?

----------
Принцессы бывают не только в сказках

Всего записей: 970 | Зарегистр. 11-07-2018 | Отправлено: 17:59 14-04-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Susie7
Лучше об стену головой. Так надежнее.

----------
Magically yours
Raistlin

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 19:27 14-04-2022
fscpsd



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Susie7
Через диспетчер задач будет то же самое, только намного проще. Нажимаете ctrl + shift + esc — открывается диспетчер задач, там переключаетесь на вкладку "Процессы", там в левом нижнем углу нажимаете "Отображать процессы всех пользователей" (чтобы получит привилегии администратора), после этого ищете в списке процессов свою игру (для этого, наверное, удобнее всего будет сделать сортировку по столбцу "Память"), после чего правая клавиша на искомом процессе — и "завершить процесс".

Всего записей: 583 | Зарегистр. 16-09-2010 | Отправлено: 07:29 15-04-2022 | Исправлено: fscpsd, 07:39 15-04-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2023

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru