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

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

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

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

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

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

Цитата:
только что его качал. утилита pdf to text платная

уверены что не ошибаетесь? Т.к. это проект с открытыми исходными кодами.




оффтоп

Всего записей: 4601 | Зарегистр. 08-09-2001 | Отправлено: 10:48 30-06-2021 | Исправлено: Maz, 00:17 04-07-2021
bomzz

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




оффтоп

Всего записей: 3069 | Зарегистр. 29-03-2016 | Отправлено: 11:27 30-06-2021 | Исправлено: Maz, 00:17 04-07-2021
los

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

Цитата:
только что его качал. утилита pdf to text платная

не знаю что и где вы качаете, тем более что речь идет о pdftotext
_https://dl.xpdfreader.com/xpdf-tools-win-4.03.zip




оффтоп

Всего записей: 4601 | Зарегистр. 08-09-2001 | Отправлено: 11:42 30-06-2021 | Исправлено: Maz, 00:17 04-07-2021
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
нашел сделал, спасибо
 
AkelPad действительно косячит конкретно.
во первых он запоминает настройки открытых документов и если изменить файл другим редактором,
то нужно очищать системный кеш ccleaner-ом. при работе с utf-8 документами,
не могу сказать точно при каких условиях, он вставляет в начало документа три невидимых знака,
которые удалить ничем не получается. приходится полностью пересоздавать документ notepad+




оффтоп

Всего записей: 3069 | Зарегистр. 29-03-2016 | Отправлено: 11:43 30-06-2021 | Исправлено: Maz, 00:16 04-07-2021
meph2k9

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую, подскажите плз задача - после запуска cmd1.cmd  вызывающего консольную утилиту надо в случае заверщения ее работы без ошибок запускать другой батник cmd2.cmd, а в случае ошибки cmderr.cmd - как это можно реализовать на примере?  (При ошибке выдает в консоль "IOError: [Errno 2]" и завершается.)

Всего записей: 24 | Зарегистр. 06-11-2008 | Отправлено: 13:21 08-07-2021 | Исправлено: meph2k9, 13:22 08-07-2021
kraeved



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
meph2k9
Начните с cmd1.cmd && cmd2.cmd || cmderr.cmd

Всего записей: 838 | Зарегистр. 01-03-2003 | Отправлено: 14:07 08-07-2021
meph2k9

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
еще имеется команда:
for %%i in (*.mp3) do (
echo %%i
ffmpeg -i "%%i" -c:a libopus -b:a 64k "%%~ni.opus" )  
что добавить чтобы в случае если выходной файл будет меньше по размеру - удалялся оригинал? а если больше то удалялся выходной

Всего записей: 24 | Зарегистр. 06-11-2008 | Отправлено: 09:21 11-07-2021
syrenium

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть необходимость создать сценарий для выполнения команд DiskPart.
Для этого созданию файл .cmd с командой:

Код:
diskpart /s C:\1.txt > C:\2.txt

И создаю файл 1.txt с командами:

Код:
list disk

Нужно, чтобы после ввода команды "list disk" показывался список дисков и предлагалось пользователю ввести нужное значение команды "select disk", после чего к выбранному диску должны применяться другие команды DiskPart.
Это возможно реализовать?

Всего записей: 515 | Зарегистр. 07-12-2015 | Отправлено: 15:29 11-07-2021
GCRaistlin



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

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

Всего записей: 3086 | Зарегистр. 18-04-2005 | Отправлено: 15:37 11-07-2021
syrenium

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Спасибо!
Подскажите, команды?

Всего записей: 515 | Зарегистр. 07-12-2015 | Отправлено: 15:54 11-07-2021
kraeved



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

Цитата:
meph2k9
что добавить… если выходной меньше по размеру, то удалялся оригинал, а если больше, то удалялся выходной

Код:
@echo off
for %%# in (*.mp3) do (
    ffmpeg -i "%%~#" -c:a libopus -b:a 64k "%%~n#.opus" ^
    && for /f "tokens=1,2 delims=;" %%a in ("%%~#;%%~n#.opus") do (
       if %%~za gtr %%~zb (del "%%~a") else (del "%%~b")
    )
)

Или на PowerShell

Код:
dir *.mp3 | % {
    $target = $_.basename + '.opus'
    ffmpeg -i $_ -c:a libopus -b:a 64k $target
    if ($?) {if ($_.length -gt (gi $target).length) {del $_} else {del $target}}
}

Всего записей: 838 | Зарегистр. 01-03-2003 | Отправлено: 16:18 11-07-2021 | Исправлено: kraeved, 16:24 11-07-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
syrenium
Выводите полученный список, затем с помощью set /p запрашиваете ввод номера диска.

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

Всего записей: 3086 | Зарегистр. 18-04-2005 | Отправлено: 16:27 11-07-2021
syrenium

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Пробовал, никак не могу понять, куда и в каком добавлять "set".

Код:
list disk
set /p disk=Выберите букву диска:  

Так не получается.

Всего записей: 515 | Зарегистр. 07-12-2015 | Отправлено: 16:55 11-07-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
syrenium
set /p - это команда cmd. Ее надо не пихать в 1.txt, а выполнять после diskpart.

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

Всего записей: 3086 | Зарегистр. 18-04-2005 | Отправлено: 16:59 11-07-2021
KiloSub



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





спам

Всего записей: 386 | Зарегистр. 30-05-2020 | Отправлено: 17:08 11-07-2021 | Исправлено: Maz, 16:02 17-07-2021
syrenium

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Получается, что понадобятся 3 файла: *.cmd, 1.txt и 2.txt.
Содержимое файла *.cmd:

Код:
diskpart /s D:\1.txt
set /p с дополнительными параметрами (пока не посмотрел)
diskpart /s D:\2.txt
exit

Содержимое файла 1.txt:

Код:
list disk

Содержимое файла 2.txt:

Код:
clean
exit

Алгоритм действия такой:
1. Запускается файл *.cmd и выполняется команда diskpart со сценарием 1.txt.
2. Выводится список дисков и предлагается выбрать диск.
3. Выполняется команда diskpart со сценарием 2.txt.
4. Происходит очистка выбранного диска и выход из diskpart, а затем выход из cmd.
Я правильно понял?

Всего записей: 515 | Зарегистр. 07-12-2015 | Отправлено: 17:48 11-07-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
syrenium
2.txt должен формироваться динамически. Он же должен выбрать нужный диск перед очисткой.

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

Всего записей: 3086 | Зарегистр. 18-04-2005 | Отправлено: 17:52 11-07-2021
kraeved



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

Цитата:
syrenium
Есть необходимость создать сценарий для выполнения команд DiskPart.

Код:
@echo off
rem Выводим перечень дисков
echo list disk | diskpart | findstr /b /c:" "
rem Ждём ввода от пользователя
set /p "_disk=Type number of disk, or press Ctrl+Break to quit: "
rem Создаём сценарий
> script.txt (
    rem Начинаем строку с echo, продолжаем командой для diskpart
    echo SELECT DISK %_disk%
    echo EXIT
)
rem Запускаем сценарий
diskpart /s script.txt

Всего записей: 838 | Зарегистр. 01-03-2003 | Отправлено: 20:11 11-07-2021 | Исправлено: kraeved, 21:14 11-07-2021
syrenium

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
kraeved
Спасибо!
Поковыряюсь несколько дней.
Еще подскажите, пожалуйста, как у файла или папки удалить все разрешения для всех пользователей?
Пробовал

Код:
icacls "C:\1" /remove *S-1-1-0

Не помогает.

Всего записей: 515 | Зарегистр. 07-12-2015 | Отправлено: 21:16 11-07-2021
kraeved



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

Цитата:
syrenium
Как у файла или папки удалить все разрешения для всех пользователей?

icacls d:\test /inheritance:r /deny *S-1-1-0:(oi)(ci)(f)
 
Добавил в 2021-07-12 00:06
* Именной указатель everyone работает в англоязычных ОС, цифровой аналог *S-1-1-0 — во всех.
* О смысле параметров и редком случае ограничения anonymous logon можно почитать здесь.

Всего записей: 838 | Зарегистр. 01-03-2003 | Отправлено: 21:44 11-07-2021 | Исправлено: kraeved, 06:23 12-07-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru