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

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

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

Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 103 104 105 106 107 108

   

Widok



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

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

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:08 19-11-2007 | Исправлено: Dmitriy05, 22:49 13-04-2008
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем!!
Подскажите пожалуйста как вывести в консоль список переданных BAT-нику параметров?
Пишу так:

Код:
@echo off
echo [%~nx0]: Command Line parametrs
for /L %%i IN (1,1,9) do (
    echo  [ %%i ] =^> %%%i
)
pause

Но, если передать скрипту параметры, то выводятся просто цифры, вместо параметров
И ещё, как сделать, чтобы выводились только непустые параметры?

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 17:07 27-09-2008 | Исправлено: SLasH, 17:12 27-09-2008
Elroir



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

Код:
 
@echo off
setlocal enabledelayedexpansion
echo [%~nx0]: Command Line parameters  
set "count=1"
for %%i IN (%*) do (
echo  [ %%!count! ] =^> %%i
set /a "count+=1"
)  
pause
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:05 27-09-2008
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Спасибо большое!!!
 
Добавлено:
А можно как-нибудь сделать так, чтобы при перенаправлении в файл, там было всё в кодировке cp1251 ?
Делаю так:

Код:
@echo off
chcp 1251
 
"%~dp0\auCDtect.exe" -v -m0 "E:\Temp\01 - Базар - Bivis.wav" > "E:\Temp\auCDtect.log"

А выходной файл получается в кодировке DOS

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 18:34 27-09-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Проще всего использовать утилиты перекодировки xcode или iconv

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:48 27-09-2008
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Ещё раз спасибо !!!
xcode по описанию рулит

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 20:15 27-09-2008
Birds999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите!!!!
Целый день по форуму лазию, нужно решение в CMD пустая директория или нет. Т.е. интересует следующая конструкция:
Если директория не пустая, то выполняем батник, если в директории файлов нет, то завершить работу.

Всего записей: 3 | Зарегистр. 21-08-2007 | Отправлено: 20:46 27-09-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Birds999
Предположим, что проверяемая директория - это c:\temp. Тогда:

Код:
 
@echo off
for %%a in (c:\temp\*.*) do goto next
goto :EOF
:next
::дальше код твоего батника
...
...
 



----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:00 27-09-2008
Birds999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо огромное!!! Выручил!

Всего записей: 3 | Зарегистр. 21-08-2007 | Отправлено: 22:48 27-09-2008
goodman4444



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробовал несколько ссылок из шапки - ни одна не работает
Может быть, старожилы из закромов выложат утилиты для работы
с BATCH-файлами ?  
СПС заранее

Всего записей: 1494 | Зарегистр. 13-12-2005 | Отправлено: 19:21 29-09-2008
KapralBel



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

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 20:47 29-09-2008
Elroir



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

Цитата:
Попробовал несколько ссылок из шапки - ни одна не работает

Надо же. Я попробовал все ссылки из шапки - не работает только одна, а именно "Пакет утилит для организации интерфейса в bat-файлах".

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:51 29-09-2008
guru431

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста!!!
 
У меня есть некая переменная вида:
%pnp1%=part1&part2&part3
 
Как мне получить вторую переменую из этой заменив символы "&" на "*":
%pnp2%=part1*part2*part3

Всего записей: 66 | Зарегистр. 28-02-2007 | Отправлено: 12:09 30-09-2008
KapralBel



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

Код:
@Echo Off
Set pnp1=part1^&part2^&part3
Set pnp2=%pnp1:&=*%
set pnp

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:17 30-09-2008
guru431

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо!!! помогло!
 
Но появилась проблема - переменная pnp2 у меня получается около 60 знаков.
Мне нужно только первые 40.
 
Как отрезать остальные?
 
Добавлено:
Спасибо!!! помогло!
 
Но появилась проблема - переменная pnp2 у меня получается около 60 знаков.
Мне нужно только первые 40.
 
Как отрезать остальные?

Всего записей: 66 | Зарегистр. 28-02-2007 | Отправлено: 13:01 30-09-2008
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
guru431
Вырезать первые 11

Код:
set pnp2=123456789012345678901234567890
set pnp3=%pnp2:~0,11%
set pnp

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:52 30-09-2008
guru431

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообщем БОЛЬШОЕ СПАСИБО KapralBel!!!
 
Всё, что я хотел получилось!
 
Кому интересно выкладываю:
 
 
:: Новое имя Локального подключения
set name1=Lan
 
:: Новое имя Беспроводного подключения
set name2=Wi-Fi
 
:: Новый Mac-адрес Локального подключения
set mac1=0013d409a812
 
:: Новый Mac-адрес Беспроводного подключения
set mac2=0013d409a812
 
set reged=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
 
:: _____Lan______________________________________________________
 
:: Определение %netnum1% (н.п. 0008)
FOR %%A IN (0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020) DO (REG QUERY %reged%\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\%%A\Ndi\Params\NetworkAddress /v type | findstr /i /v ",edit" | findstr /i edit > nul: 2>&1 && SET netnum1=%%A)
 
:: Определение %netcfg1% (н.п. {E7CD9D89-0B1A-41CC-9C12-7871C8B71F74})
FOR /F "skip=4 tokens=3" %%A IN ('REG QUERY %reged%\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\%netnum1% /v NetCfgInstanceId') DO SET netcfg1=%%A
 
:: Определение %pnp1% (н.п. PCI\\VEN_1969&DEV_1048&SUBSYS_82261043&REV_B0\\4&38D2602C&0&00E1)
FOR /F "skip=4 tokens=3" %%A IN ('REG QUERY %reged%\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netcfg1%\Connection /v PnpInstanceID') DO SET pnp1=%%A
 
:: Переименовывание подключения
REG ADD "%reged%\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netcfg1%\Connection" /V Name /t REG_SZ /D "%name1%" /f
 
:: При подключения вывести значек в области уведомлений
REG ADD "%reged%\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netcfg1%\Connection" /V ShowIcon /t REG_DWORD /D 1 /f
 
:: Изменение Mac-адреса
REG ADD "%reged%\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netnum1%" /V NetworkAddress /t REG_SZ /D %mac1% /f
 
:: Приводим %pnp1% к необходимым требованиям devcon
set pnp1a=%pnp1:&=*%  
set pnp1b=%pnp1a:~0,44%  
 
:: Перезагружаем Lan
devcon disable %pnp1b%
devcon enable %pnp1b%
 
:: _____Wi-Fi_____________________________________________________
 
:: Определение %netnum2% (н.п. 0008)
FOR %%A IN (0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020) DO (REG QUERY %reged%\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\%%A\Ndi\Interfaces /v LowerRange | findstr /i /v ",ethernet,wifimon" | findstr /i "ethernet,wifimon" > nul: 2>&1 && SET netnum2=%%A)
 
:: Определение %netcfg2% (н.п. {E7CD9D89-0B1A-41CC-9C12-7871C8B71F74})
FOR /F "skip=4 tokens=3" %%A IN ('REG QUERY %reged%\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\%netnum2% /v NetCfgInstanceId') DO SET netcfg2=%%A
 
:: Определение %pnp2% (н.п. PCI\\VEN_1969&DEV_1048&SUBSYS_82261043&REV_B0\\4&38D2602C&0&00E1)
FOR /F "skip=4 tokens=3" %%A IN ('REG QUERY %reged%\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netcfg2%\Connection /v PnpInstanceID') DO SET pnp2=%%A
 
:: Переименовывание подключения
REG ADD "%reged%\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netcfg2%\Connection" /V Name /t REG_SZ /D "%name2%" /f
 
:: При подключения вывести значек в области уведомлений
REG ADD "%reged%\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netcfg2%\Connection" /V ShowIcon /t REG_DWORD /D 1 /f
 
:: Изменение Mac-адреса
REG ADD "%reged%\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\%netnum2%" /V NetworkAddress /t REG_SZ /D %mac2% /f
 
:: Приводим %pnp2% к необходимым требованиям devcon
set pnp2a=%pnp2:&=*%  
set pnp2b=%pnp2a:~0,44%  
 
:: Перезагружаем Wi-Fi
devcon disable %pnp2b%
devcon enable %pnp2b%

Всего записей: 66 | Зарегистр. 28-02-2007 | Отправлено: 14:35 30-09-2008
GRom V

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Может кто сталкивался......стоит родной виндовый файервол. операционка ХП. Комп на пинг не отвечает. Нужно переодически пинговать комп. Как открыть эту возможность с командной строки?

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 09:09 02-10-2008
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GRom V
ping -t comp1

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:57 02-10-2008
vserd

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

Цитата:
стоит родной виндовый файервол. операционка ХП. Комп на пинг не отвечает. Нужно переодически пинговать комп. Как открыть эту возможность с командной строки?

Смотри в сторону netsh firewall.
 
KapralBel

Цитата:
ping -t comp1

Ему не пинговать комп нужно, а дать и забрать разрешение на входящее эхо (ping) в файрволе.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 13:28 02-10-2008
amt2001

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
 
При попытке на ХРSP2 запустить в батнике start /wait sfc.exe /scannow не происходит ожидания окончания процесса. Подозрение на синтаксис, но кавычки (двойные и одинрные) не помогают.
sfc - system file controller -виндовая утилита проверки ЭЦП системных файлов
 
 В чем может быть причина? Спасибо.

Всего записей: 1 | Зарегистр. 02-10-2008 | Отправлено: 17:39 02-10-2008
   

Страницы: 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 103 104 105 106 107 108

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru