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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Susie7



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

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

Это невозможно! Игра так виснет, что ничего не запускается в полный рост.
 
Только батник нужен!
Хэлп!
 
 
А если батник в той же папке, что и екзешник, то полный путь к нему всё равно нужен или нет?
Батник KILL - ПЛЗ!!!

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

Всего записей: 970 | Зарегистр. 11-07-2018 | Отправлено: 15:50 15-04-2022 | Исправлено: Susie7, 15:55 15-04-2022
fscpsd



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

Цитата:
батник нужен

Окей, как скажете.
Весь батник будет состоять из одной строчки:

Код:
TASKKILL /F /IM "notepad.exe"

Обратите внимание, там написано notepad.exe — это для примера, это процесс Блокнота, можете на нём потренироваться, поубивать Блокнот.
А вообще вместо notepad.exe — аккурат между кавычками — вам нужно будет подставить название рабочего процесса своей игры. Его можно узнать, поискав по диспетчеру задач.
Например, для игры Тетрис строчка будет такая:

Код:
TASKKILL /F /IM "tetris.exe"

Всего записей: 583 | Зарегистр. 16-09-2010 | Отправлено: 16:27 15-04-2022 | Исправлено: fscpsd, 16:33 15-04-2022
Susie7



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

Цитата:
TASKKILL /F /IM "tetris.exe"

Т.е. полный путь не надо!?
Если батник и екзешник рядом...
 
 
Добавлено:

Цитата:
TASKKILL /F /IM "notepad.exe"

Уря! Всё работает, осталось только как-то на рабочий стол 8-ки закинуть, который странный...


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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть бат файлик из набора компонентов (CnVCL) для Delphi, который компилирует примеры от этой библиотеки.  
 
Хотелось бы сделать данный батник универсальным, для возможности компилировать либо много примеров, либо много проектов.  
 
Принцип такой, есть папка Examples/Projects, в этой папке так же находятся много папок с примерами/проектами (к примеру Test1/Project1.dpr, Test2/Project1.dpr, Test3/Project1.dpr и т.д. (имена папок могут быть разными)), нужно батник разместить в папке Examples/Project и запустить, чтобы он скомпилировал все проекты в под-папках.
 
Сам код из батника CnVCL

Всего записей: 32 | Зарегистр. 27-11-2011 | Отправлено: 12:18 16-04-2022
Roman_Hayretdinov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nnm4evr, попробуйте заменить строку
Код:
FOR /D %%D IN (.\*) DO (
на
Код:
FOR /R %%D IN (.) DO (
Может, прокатит

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



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

Цитата:
Может, прокатит

Не прокатило. Реакции ни какой нет, не происходит компиляция. А вот в папке с примерами CnVCL, работает почти нормально, кое что не компилируется, но это нормально, т.к. библиотека пока в AlphaBuild.
До изменений в батнике:

 
После внесения изменений:

Всего записей: 32 | Зарегистр. 27-11-2011 | Отправлено: 14:54 16-04-2022 | Исправлено: nnm4evr, 14:54 16-04-2022
nnm4evr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема решена, почти ничего в файле менять не пришлось, просто почему-то скрипт не воспринимает файлы с именем и расширением написанные БОЛЬШИМИ буквами. Переименовал все файлы *.dpr на маленькие буквы и всё заработало (Пример: DEMO.DPR -> demo.dpr).

Всего записей: 32 | Зарегистр. 27-11-2011 | Отправлено: 13:53 17-04-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
nnm4evr
Дак везде замените IF на IF /I

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня,
подскажите, выполняя wmic useraccount where name='%USERNAME%' get sid
во второй строке получаем sid, как его получить в переменную %sid%, что бы можно было выполнить
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\%sid%\Keys" "c:\crypto_key.reg" /y

Всего записей: 61 | Зарегистр. 09-12-2004 | Отправлено: 10:21 21-04-2022
Roman_Hayretdinov



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

Код:
for /F "skip=1" %A in ('wmic useraccount where name^='%USERNAME%' get sid') do @set sid=%A

Это для ввода в командной строке. Для пакетного файла надо вместо %A писать %%A

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roman_Hayretdinov  Так не сработает.
tirex2k
 Вот корректный вариант

Код:
 
@echo off
for /f "delims= " %%a in ('"wmic useraccount where name='%UserName%' get sid"') do (
   if not "%%a"=="SID" (          
      set sid=%%a
      goto :loop_end
   )    
)
:loop_end
@echo %sid%
@echo reg export "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\%sid%\Keys" "c:\crypto_key.reg" /y
 

 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11226 | Зарегистр. 10-12-2003 | Отправлено: 14:45 21-04-2022
GCRaistlin



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

Цитата:
Так не сработает.

С чего бы?
 
Добавлено:
А, действительно, там вывод хитрый. Правда, ваш вариант тоже фигню сделает, если компьютер в домене и пользователь с таким именем есть и там, и локально.

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

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



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

Почему не сработает? Проверил у себя - всё работает. В чём подвох?

Всего записей: 47 | Зарегистр. 19-12-2021 | Отправлено: 22:15 21-04-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roman_Hayretdinov
wmic в конце выдает CR без LF, который FOR'ом как пустая строка не воспринимается. В результате переменная получает пустое значение.

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

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 22:53 21-04-2022
Roman_Hayretdinov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin, странно... В третий раз проверил у себя - переменная sid получает значение S-1-5-21-842925246-1078081533-725345543-500
Почему у вас переменная получает пустое значение, а у меня нет?

Всего записей: 47 | Зарегистр. 19-12-2021 | Отправлено: 23:02 21-04-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roman_Hayretdinov
Возможно, вывод различается в зависимости от версии Windows (у меня 8.1 x64).

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

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 23:11 21-04-2022
tirex2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roman_Hayretdinov
Спасибо на win10 x64 работает, а если усложнить
 
For /F "usebackq tokens=* delims=" %%i In ("%root%\sid.txt") Do Set sid=%%i
for /f "delims= " %%a in ('"wmic useraccount where name='%UserName%' get sid"') do (
   if not "%%a"=="SID" (          
      set sid_new=%%a
      goto :loop_end
   )    
)
:loop_end
тут нужно в файле crypto_key.reg заменить во всех строках %sid% на %sid_new%
reg import "%root%\%podr%\%comp%\crypto_key.reg"
exit
 

Всего записей: 61 | Зарегистр. 09-12-2004 | Отправлено: 07:11 22-04-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roman_Hayretdinov  В Win7 x64  твой вариант не работает, причину уже озвучили выше.  
 
 
Добавлено:
tirex2k

Цитата:
тут нужно в файле crypto_key.reg заменить во всех строках %sid% на %sid_new%

Читай тут  https://www.cyberforum.ru/cmd-bat/thread1792970.html
окончательное решение в конце поста, рихтуй под себя

----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11226 | Зарегистр. 10-12-2003 | Отправлено: 07:14 22-04-2022 | Исправлено: ipmanyak, 07:39 22-04-2022
Fenrizz



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

Код:
for /F "skip=6 tokens=1,2,3" %%I in ('whoami /user') do echo %%J

 
Добавлено:

Цитата:
тут нужно в файле crypto_key.reg заменить во всех строках %sid% на %sid_new%  reg import "%root%\%podr%\%comp%\crypto_key.reg"  

 

Код:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
 
for /F "skip=6 tokens=1,2,3,4,5" %%I in ('whoami /user') do set "new_sid=%%J"
set "old_sid=S-1-2-33-4444444444-5555555555-6666666666-777777"
 
for /f "tokens=*" %%A in (crypto_key.reg) do (
    set "string=%%A"
    set "modified=!string:%old_sid%=%new_sid%!"
    echo !modified!>>crypto_key2.reg
)
 
endlocal
 

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 08:43 22-04-2022 | Исправлено: Fenrizz, 09:28 22-04-2022
Death_INN

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

Цитата:
Roman_Hayretdinov  В Win7 x64  твой вариант не работает, причину уже озвучили выше

проверил на Win7 x64 - работает

Всего записей: 2508 | Зарегистр. 24-10-2002 | Отправлено: 09:48 22-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