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

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

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

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
· Переход из 32-битной версии cmd.exe в 64-битную

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
Smokeer

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Спасибо!
Возникла необходимость усовершенствовать скрипт. Нужно копировать каталог во второй, но при этом проверять есть ли каждый отдельный копируемый файл в каталоге-получателе. (и если есть - делать его резервную копию добавсяя к имен .bac) Загвоздка какраз в проверке есть ли во втором каталоге одноимённый файл.
 

Всего записей: 781 | Зарегистр. 25-09-2005 | Отправлено: 17:12 11-09-2009
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кому интересно: принцип управления сонсольными прогами на примере ESET NOD32 (сам пользуюсь Каспером !)
Подробнее...

Всего записей: 2037 | Зарегистр. 05-07-2008 | Отправлено: 19:29 11-09-2009
Smitis



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

Цитата:
Почему может быть такая ошибка?
D:\Backup>set /a aaa=08
Неправильное число. Числовые константы должны быть десятичными (17)  
шестнадцатеричными (0x11),или восьмеричными (021).  

По-русски же написано:

Цитата:
Неправильное число. Числовые константы должны быть десятичными (17)  
шестнадцатеричными (0x11),или восьмеричными (021).  

07 - правильная восьмеричная константа,
08 - неправильная восьмеричная константа


----------
Разум когда-нибудь победит

Всего записей: 2470 | Зарегистр. 09-02-2003 | Отправлено: 21:50 11-09-2009
01MDM



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

Цитата:
Возникла необходимость усовершенствовать скрипт.  

Нужно проверять файлы по размеру или в любом случае отправлять их *.bac?

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:02 12-09-2009
Kiev78

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли какая-нибудь консольная утилита, которая бы возвращала ID3 теги указанного файла. Тогда быстрая сортировка mp3 файлов по каталогам выполнялась бы командой что-то типа такой:
FOR /r c:\unsorted_music %%a in (*.mp3) do move %%a  c:\sorted_music\%Artist%\%Year%-%Album%\%%a
Ну вы поняли, раскидывание файлов по каталогам %Artist% внутри которых каталоги %Year%-%Album%  (или просто %Album% - не суть важно). То есть мы пишем что-то типа %Artist% а прога заменяет его на считанное из файла значение (например на Nirvana) К сожалению командная строка не понимает Ид3 тегов и переменных типа %Artist%. Может есть какая нибудь навороченная консольная прога (типа xxcopy, которая тоже к сожалению этого не может). Если ничего такого нет, то придется писать AutoIt скрипт, что немного сложнее.

Всего записей: 244 | Зарегистр. 17-06-2006 | Отправлено: 20:14 12-09-2009 | Исправлено: Kiev78, 20:16 12-09-2009
gorenski



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kiev78
Может быть не стоит усложнять, а воспользоваться программой Tag&Rename

Всего записей: 711 | Зарегистр. 29-01-2003 | Отправлено: 04:12 13-09-2009
bomzzz



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

Цитата:
 
в HS-paket (Пакет утилит для организации интерфейса в bat-файлах ) входит HS_play, для проигрывания wav файлов. вот это тоже самое только весит 1,50 КБ (1 536 байт) против 15,5 КБ (15 872 байт), правда не умеет проигрывать несколько файлов из командной строки. работает почти так же, только надо косую черту указать перед путем к файлу.
"C:\sound.exe" /C:\WINDOWS\Media\chimes.wav
sound.exe
 

а вот такие две утилиты не входят
cdclose.exe 2,50 КБ (2 560 байт)
cdopen.exe 2,50 КБ (2 560 байт)
 
параметром командной строки через обратный слеш можно задать заголовок окна, а можно и не задавать.  "C:\cdopen.exe"  /bomz  или   "C:\cdclose.exe" /bomz  
 
     
 
вроде батником сидюк не открывается. хотя странно.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 06:32 13-09-2009 | Исправлено: bomzzz, 06:35 13-09-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kiev78
Mediainfo  
 
bomzzz
Универсальная утилита NirCmd открывает и закрывает лоток.
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:19 13-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
но она про это не спрашивает и статус сд не проверяет
 
надо было наверно в одну запихать и через 0 и 1 вызывать открыть закрыть.
 
тогда уж надо было все в одну пихать... впрочем я вообще в таких утилитах смысла не вижу - если батники чего не могут значит надо на вбс скрипте писать.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 07:32 13-09-2009 | Исправлено: bomzzz, 07:42 13-09-2009
Kiev78

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

Цитата:
Может быть не стоит усложнять, а воспользоваться программой Tag&Rename

Спасибо, я как раз воспользовался Tag&Rename (хотя если бы не подсказали, я бы по названию не догадался, что она может не только переименовывать, но и перемещать).

Всего записей: 244 | Зарегистр. 17-06-2006 | Отправлено: 08:04 13-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Новое творение родил. заменитель утилиты HS_MESSAGE из HS_Packet.
работает таким образом.  
MsgBox.exe /Text/Title/const
где Text - текст диалогового сообщения, для переноса строки используется знак | .
Title - заголовок окна диалогового сообщения
const - параметры диалогового окна. получается таким образом из этой таблицы.

Цитата:
 
Константа    Значение   Описание  
OKOnly                  0     Выводится кнопка ОК.
OKCancel               1     Выводятся кнопки ОК и Отмена (Cancel).
AbortRetryIgnore    2     Выводятся кнопки Стоп (Abort), Повтор (Retry) и Пропустить (Ignore).
YesNoCancel          3     Выводятся кнопки Да (Yes), Нет (No) и Отмена (Cancel).
YesNo                    4     Выводятся кнопки Да (Yes) и Нет (No).
RetryCancel           5     Выводятся кнопки Повтор (Retry) и Отмена (Cancel).
                            6      Отмена Повторить Продолжить
Critical                   16    Выводится значок Stop Mark.
Question                32    Выводится значок Question Mark.
Exclamation            48    Выводится значок Exclamation Mark.
Information            64    Выводится значок Information Mark.
                             128  выровнять текст справа  
                            1024  выровнять текст слева
DefaultButton1        0     По умолчанию в окне выбирается первая кнопка.
DefaultButton2       256   По умолчанию в окне выбирается вторая кнопка.
DefaultButton3       512   По умолчанию в окне выбирается третья кнопка.
DefaultButton4       768   По умолчанию в окне выбирается четвёртая кнопка.
ApplicationModal      0     Диалоговое окно выводится в модальном режиме. Пользователь должен ответить на запраос, прежде чем он сможет продолжить работу приложения. Но он может перейти работать в окна другого приложения или работать со всплывающими окнами данного приложения
SystemModal        4096  Диалоговое окно выводится в модальном режиме и располагается сверху всех запускаемых приложений.Используется этот параметр для предупреждения о серьезных о серьезных ошибках, требующих немедленного вмешательсьва.
                            16384 - справка (событие не обрабатывается)
 
 

Например 4096+256+32+3=4387
модальный режим поверх окон, дефолтная кнопка 2, иконка вопросика, кнопки: да нет отмена
c:\MsgBox.exe /bomz|bomz|bomz/bomz/4387
любое значение можно опустить.  
но в широком смысле нельзя опустить текст и начать с заголовка или свойств окна, тогда опускаемое значение нужно пустым знаком - ///0 . справа налево можно - опустить свойства окна - тогда они будут равны 0.
 
   

Цитата:
 
Возвращаемое значение:
OK 1 Нажата кнопка ОК.
Cancel 2 Нажата кнопка Отмена (Cancel).
Abort 3 Нажата кнопка Стоп (Abort).
Retry 4 Нажата кнопка Повтор (Retry).
Ignore 5 Нажата кнопка Пропустить (Ignore).
Yes 6 Нажата кнопка Да (Yes).
No 7 Нажата кнопка Нет (No).
10 повторить
11 продолжить
 

MsgBox.exe2,00 КБ (2 048 байт)
 
получилась полно функциональной, компактной (2,00 КБ (2 048 байт) против 16,5 КБ (16 896 байт)), плюс есть перенос строки. знаком | пришлось пожертвовать, как впрочем и /
   
 
пока ошибки исправлял интересное свойство обнаружил - можно зеркально отразить окошко. то есть крестик будет в левом верхнем, "да" справа "нет" слева.  
 
пропуск строки || , пропуск значения слева направо //.
| - заменяется chr(10), перенос строки.
 
   

Цитата:
 
    1048576 пасхальное яйцо
 

MsgBox-.exe2,00 КБ (2 048 байт)
сделал сразу вариант - знак переноса строки ` знак разделителя значений командной строки ~, верхнее и нижнее значения самой верхней левой клавиши клавиатуры в английской раскладке(в русской это буква ёЁ). то есть командная строка будут выглядеть так
c:\MsgBox-.exe ~Text`aaa`bbb`ccc``ddd`eee~Title~4387
   
 
еще себе делал две такие утилиты - одна помещает содержимое буфера обмена в файл рядом с собой с названием CLPB.txt, а вторая из файла рядом с собой с названием TOCLPB.txt содержимое помещает в буфер обмена.
 
CLPB.exe10,2 КБ (10 490 байт)
TOCLPB.exe10,2 КБ (10 486 байт)

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:09 13-09-2009 | Исправлено: bomzzz, 05:58 14-09-2009
kalkin5



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите как сделать, мне надо чтобы в папке %windir%\mui\FALLBACK все папки кроме 0419 были удалены, попытался сделать сам, но что-то не работает
 

Код:
for /f "delims=" %%a in (
'dir "%windir%\mui\FALLBACK" /b /s /a ^| findstr /i "lproj\>" ^| find /i /v "0419"') do rd /q /s "%%a"

Всего записей: 186 | Зарегистр. 21-03-2006 | Отправлено: 09:47 14-09-2009
01MDM



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

Код:
 
@echo off
pushd "%windir%\mui\FALLBACK"
for /f "tokens=*" %%i in ('dir /b /ad ^| findstr /v "^0419$"') do rd /s /q "%%i"
popd
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:17 14-09-2009
kalkin5



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
спасибо а символ $ после 0419 для чего нужен?

Всего записей: 186 | Зарегистр. 21-03-2006 | Отправлено: 11:17 14-09-2009
01MDM



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

Цитата:
а символ $ после 0419 для чего нужен?

Конец строки, чтоб исключить варианты:
 
"0419 qwerty"
"qwerty 0419"
 
и т.д

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:28 14-09-2009
mnh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите пожалуйста, почему не отрабатывает команда:
 
for /r c:\de %%i IN (de.ini) do (
set j=%%~dpfi
set j=%j:~11,2%)
 
 
цикл не хочет воспринимать команду set j=%j:~11,2%  (
пробовал и так                                  set j=%%%~dpfi:~11,2%

Всего записей: 5 | Зарегистр. 14-09-2009 | Отправлено: 14:17 14-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у тебю множество файл - а тут вроде речь идет только про каталоги.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:23 14-09-2009 | Исправлено: bomzzz, 15:07 14-09-2009
mnh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Суть такова - есть файл, который нужно найти и вставить еще одну строку, всё это можно сделать таким способом, но я хочу упростить и сделать одним бат файлом
 
1.bat
 
for /r c:\de %%i IN (de.ini) do 2.bat %%i
 
2.bat
 
set j=%1
set j=%j:~18,2%
gsar.exe -s[path] -r[path]:x0D:x0ASate=D::\Data\bo\ETPL%j%\ -o %1
 
 
где gsar дополнительный ехе файл

Всего записей: 5 | Зарегистр. 14-09-2009 | Отправлено: 14:35 14-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
оператор (команда) for с параметром /r производит поиск по каталогам , поиск по содержимому файлов производится с параметром /f

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:42 14-09-2009
mnh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я полностью согласен, потому использовал цикл только для поиска файлов, ехе файлом заменял строку

Всего записей: 5 | Зарегистр. 14-09-2009 | Отправлено: 15:09 14-09-2009
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru