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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13

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

Maz



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

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ 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.10 до Windows 11 +Win95cmd +ReactOS) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на своей версии ОС.
 
· Большой сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 39021 | Зарегистр. 26-02-2002 | Отправлено: 22:41 20-06-2024
www_world

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

Цитата:
скажите, а возможно ли склеить два батника в один триггерный?  
ну, то есть вот кликая по такому объединённому - сначала выполняются команды из бывшего первого батника, а повторным кликом по объединённому - выполнялись уже команды из бывшего второго батника..
вобщем вот, первый батник который я запускаю с ярлыка на раб-столе:
 
Код:
goodbyedpi.exe -9 -e 1 --blacklist russia-youtube.txt
 
а это второй:
 
Код:
@ECHO OFF
echo This script should be run with administrator privileges.
echo Right click - run as administrator.
echo Press any key if you're running it as administrator.
pause
sc stop "GoodbyeDPI"
sc delete "GoodbyeDPI"
sc stop "WinDivert"
sc delete "WinDivert"
 
вот хотелось бы кликами по одному единственному ярлыку - и запускать и ремувить)
ещё б конечно бы намудрить, чтоб созданное консольное окно от первогобатника сразу само бы сворачивалось в трей ))
а, и наверно лучше бы вообще убрать те эхи администраторства, я и так он

Типа такого?

Код:
@ECHO OFF
SET "srv=GoodbyeDPI"
FOR %%a IN (%srv%) DO ( SC query %%a | FINDSTR /i /r /c:"STATE.*RUNNING"
IF %ERRORLEVEL% equ 0 ( GOTO :stp ) ELSE ( goodbyedpi.exe -9 -e 1 --blacklist russia-youtube.txt ) )
GOTO :eof
:stp
sc stop "GoodbyeDPI"
sc delete "GoodbyeDPI"
sc stop "WinDivert"
sc delete "WinDivert"
:eof

Всего записей: 396 | Зарегистр. 04-11-2018 | Отправлено: 20:28 16-08-2024
notinthewoods



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

Код:
ELSE ( goodbyedpi.exe -9 -e 1 --blacklist russia-youtube.txt )

Разве это создаст службу "GoodbyeDPI" ? Это всего лишь запуск приложения.
При повторном запуске батника служба вновь будет не обнаружена и произойдет попытка запуска опять же goodbyedpi.exe
Запуск службы должен быть типа такой:

Код:
sc create "GoodbyeDPI" binPath= ...
sc start "GoodbyeDPI"

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 23:04 16-08-2024
coleslaw

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FiLinX (пост)
Цитата:
а это второй

не нужен второй батник - я же вам ссылку давал
 

Всего записей: 139 | Зарегистр. 17-10-2018 | Отправлено: 23:26 16-08-2024
www_world

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

Цитата:
Разве это создаст службу "GoodbyeDPI" ? Это всего лишь запуск приложения.

Это не ко мне. Я эту программу не использую от слова совсем и как она запускается или самозапускается, посредством ли оверлейного/внешнего загрузчика.
А батник слеплен из того, что дал клиент лишь с целью слепить из двух батников один.
 
А стандартные сервисы можно запускать/выключать батником

Код:
NET START "some_service" ||NET STOP "some_service"

Например

Код:
NET START "WSearch" ||NET STOP "WSearch"

Всего записей: 396 | Зарегистр. 04-11-2018 | Отправлено: 00:06 17-08-2024
notinthewoods



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

Цитата:
NET START "OpenVPNServiceInteractive" ||NET STOP "OpenVPNServiceInteractive"
Затребованная служба уже запущена.
 
Для вызова дополнительной справки наберите NET HELPMSG 2182.
 
Служба "OpenVPN Interactive Service" останавливается.
Служба "OpenVPN Interactive Service" успешно остановлена.
 
NET START "OpenVPNServiceInteractive" ||NET STOP "OpenVPNServiceInteractive"
Служба "OpenVPN Interactive Service" запускается.
Служба "OpenVPN Interactive Service" успешно запущена.

(Запуск от администратора)

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 00:34 17-08-2024
LZAA

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

     Задача: запустить приложение типа '.exe' без расширения.
 
   Нашёл только такое: https://www.cyberforum.ru/vb-net/thread2777346.html
 
   Я плохо понимаю, как именно применить это решение. Вопрос: есть ли ещё способы решения поставленной задачи?

Всего записей: 2286 | Зарегистр. 09-01-2010 | Отправлено: 18:00 22-08-2024
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LZAA
PowerShell
Цитата:
Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow

Всего записей: 12699 | Зарегистр. 11-03-2002 | Отправлено: 18:11 22-08-2024
LZAA

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

       Читал я про эту команду. Я её минимизировал:
 
       Start-Process -FilePath .\my-program -NoNewWindow
 
       Это работает. Можно ли запускать эту команду пакетным файлом или ярлыком?
 
     

Всего записей: 2286 | Зарегистр. 09-01-2010 | Отправлено: 21:40 22-08-2024
Pasha_ZZZ



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

Цитата:
powershell -NoLogo -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "Start-Process -FilePath .\my-program -NoNewWindow"

Всего записей: 12699 | Зарегистр. 11-03-2002 | Отправлено: 21:47 22-08-2024
LZAA

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

    Сделал пакетный файл с этой командой, но исполняемый файл не запускается.
    Могли бы Вы у себя это проверить?

Всего записей: 2286 | Зарегистр. 09-01-2010 | Отправлено: 22:18 22-08-2024
Simple Code

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

Цитата:
Можно ли запускать эту команду пакетным файлом или ярлыком?

Для cmd:
powershell.exe -NoL -NoP -NonI -EP Bp start -NNW 'путь до программы'

Всего записей: 202 | Зарегистр. 19-11-2022 | Отправлено: 22:24 22-08-2024 | Исправлено: Simple Code, 22:27 22-08-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                              Simple Code
 
      Скажите, пожалуйста, какая связь между
 
      Start-Process -FilePath .\my-program -NoNewWindow
 
      и  
 
     powershell.exe -NoL -NoP -NonI -EP Bp start -NNW 'путь до программы'
 
    ? Ваша команда исполняемый файл не запускает.
 
 
 

Всего записей: 2286 | Зарегистр. 09-01-2010 | Отправлено: 22:39 22-08-2024 | Исправлено: LZAA, 22:52 22-08-2024
Simple Code

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

Цитата:
Скажите, пожалуйста, какая связь между

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

Всего записей: 202 | Зарегистр. 19-11-2022 | Отправлено: 23:13 22-08-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                               Simple Code
 
   Я дико извиняюсь - команда работает! Большое спасибо!
   Заминка случилась изза того, что я по привычке двойные кавычки использовал. Для меня вновинку то, что в Windows одинарные кавычки работают.  
   В конечном итоге сделал так:
 
   powershell start 'Path' -NNW
 
   Это работает. Красота!
 
 
Добавлено:
 
       Ещё такой вопрос имеется. Я использую для ярлыка такую запись:
 
       Path\mshta.exe vbscript:Execute("CreateObject(""WScript.Shell"").Run ""Path\X.bat"",0,True:close:")
 
    Это работает, если в пути 'X.bat' нет пробелов в названиях директорий. Но для пути с 'Program Files', например, это не работает. Можно ли преодолеть это затруднение редактированием указанной записи?

Всего записей: 2286 | Зарегистр. 09-01-2010 | Отправлено: 00:45 23-08-2024 | Исправлено: LZAA, 00:56 23-08-2024
Simple Code

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

Цитата:
Ещё такой вопрос имеется. Я использую для ярлыка такую запись:

Скорей всего съедает кавычки, попробуйте такой вариант (6 кавычек):

Код:
Path\mshta.exe vbscript:Execute("CreateObject(""WScript.Shell"").Run """"""Path\X.bat"""""",0,True:close:")

Всего записей: 202 | Зарегистр. 19-11-2022 | Отправлено: 02:51 23-08-2024 | Исправлено: Simple Code, 02:53 23-08-2024
LZAA

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

         Уря! Это работает. Большое спасибо!

Всего записей: 2286 | Зарегистр. 09-01-2010 | Отправлено: 03:01 23-08-2024
Crownethers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как решить такую задачу.
Имеется несколько, например, 10 троек переменных
а в  с
а1 в1 с1
...
a9 b9 c9
 
Вертикальные колонки (напр., а-а9 и тд) - переменные одного порядка, напр., ах - имена файлов, вх - текстовые строки, сх - текстовые строки
Ряд а-в-с - жестко взаимосвязан, то есть имеем всего 10 вариантов. Обрабатываем а, значит с ним и в и с, обрабатываем а1, значит и в1 и с1.
 
Вопрос состоит в том, существует ли способ обработать эти ряды в цикле, напр., через for передав три переменные в подпрограмму ( for ... in (....) do call :sub %%a %%b %%с)? То есть, задать значения переменных однажды, потом, никак их не перечислять потом путем явного сравнения со значениями в подпрограмме (типа if %2 == "техт1" и т.д.)

Всего записей: 7 | Зарегистр. 10-01-2024 | Отправлено: 04:09 23-08-2024
BorlandIMHO

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

Цитата:
существует ли способ

Да.

Код:
for /L %I in (0,1,9) do call :sub "%a%I%" "%b%I%" "%c%I%"

Код:
for /L %I in (0,1,9) do call :sub "%%a%%I%%" "%%b%%I%%" "%%c%%I%%"

Тонкость: первый набор элементов должен быть не "ваще без индекса", а иметь индекс "0". Ну, или индексация с 1 по 10, как вариант.
Если в значениях ваших переменных гарантированно не будет пробелов - без кавычек можно обойтись.
В подпрограмме %1 - переменная в кавычках, %~1 - без кавычек. Так же для %2 и %3.

Всего записей: 2559 | Зарегистр. 12-10-2006 | Отправлено: 09:23 23-08-2024 | Исправлено: BorlandIMHO, 21:44 24-08-2024
GCRaistlin



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

Цитата:
"%a%I%"

Так работать не будет: сначала раскроется %a%.
 
Crownethers

Код:
 
set A1=one
set A2=two
set A3=three
set B1=eins
set B2=zwei
set B3=drei
setlocal enabledelayedexpansion
for /l %%A in (1,1,3) do (
  echo !A%%A! = !B%%A!
)
endlocal
 


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

Всего записей: 4091 | Зарегистр. 18-04-2005 | Отправлено: 11:15 23-08-2024
BorlandIMHO

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

Цитата:
Так работать не будет

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

И "просто в комстроке" call вполне достаточно...

Всего записей: 2559 | Зарегистр. 12-10-2006 | Отправлено: 12:20 23-08-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru