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

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



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

Цитата:
Пример: 8B CC 83 7A 01 86 8A E4 F0 15 9E 36 ED BE 62 4A fraza  

Чуток измени:

Код:
 
 
....
echo %string% fraza
....
 
:string
set /a cnt+=1
if %cnt%==2 set "str=%str% " && set "cnt=0"
 
set "string=%string%%str%"
for /f "tokens=1 delims==" %%i in ('set sign_') do set "%%i="
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:05 10-05-2009 | Исправлено: 01MDM, 18:06 10-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, всё прекрасно работает, но, если можно, надо зациклить выполнение до нажатия Esc (или любой клавиши). Не обязательно нажатием на клавишу прерывать, главное зациклить, а прервать я могу и Ctrl-C

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 18:31 10-05-2009 | Исправлено: mp3exchanger, 18:39 10-05-2009
anachrom

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

Цитата:
Про планировщик заданий слыхали?

слыхал, но хочется через батник. что бы постоянно не планировать задания на новых машинах.

Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 18:37 10-05-2009
01MDM



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

Цитата:
надо зациклить

 
На ум приходит только CTRL+C

Код:
 
@echo off
setlocal
 
:loop
 
.....
 
echo %string% fraza
goto:loop
 
:: goto:eof
.....
 

 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:53 10-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, что то он не так выводит строку после зацикливания, посмотри, пожалуйста ещё раз, что не так

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 19:37 10-05-2009 | Исправлено: mp3exchanger, 11:31 12-05-2009
vchobo

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

Цитата:
Узнаем текущий день недели:  
wmic path win32_LocalTime get DayOfWeek  

Ну ты прямо шаман!
Спасибо, действительно работает
Смотрел справку по wmic, но сходу не понял, надо разобраться
 
 
Добавлено:
romrub

Цитата:
эх, святой грааль можно сказать отдаю ...
в папке %systemroot%\help файлик 'ntcmds.chm'
про обраобтку строк есть в теме про команды SET и FOR  

Этот файл справки я смотрел, там нет того, что нужно
Во всяком случае в камандах  SET и FOR.
Мне нужно описание средств выделения подстроки по позиции, вхождению, n символов справа (слева) и т.п.

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 19:45 10-05-2009 | Исправлено: vchobo, 19:45 10-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mp3exchanger
Sorry. Просто надо обнулить переменную %string%, чтобы в нее записывались только новые данные:

Код:
 
....
echo %string% fraza
set "string="
goto:loop
....
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:22 10-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, 01MDM, ты настоящий профи.

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 20:27 10-05-2009
romrub

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

Цитата:
01MDM
Цитата:
Узнаем текущий день недели:  
wmic path win32_LocalTime get DayOfWeek  
 

а wmic тоже можно было использовать ?
показалось, что только чисто средствами bat-файла и cmd.exe ...
тогда wmic path win32_LocalTime get DayOfWeek /VALUE
поудобней для обработки будет, имхо
 

Цитата:
 
Добавлено:romrub
Цитата:
эх, святой грааль можно сказать отдаю ...
в папке %systemroot%\help файлик 'ntcmds.chm'
про обраобтку строк есть в теме про команды SET и FOR  
 
Этот файл справки я смотрел, там нет того, что нужно
Во всяком случае в камандах  SET и FOR.
Мне нужно описание средств выделения подстроки по позиции, вхождению, n символов справа (слева) и т.п.  

как же нет ? вот по команде SET, в частности
 
по позиции может и нет, а вот остальное вполне реализуемо.
единственное ограничение - обработке подлежат только set-переменные окружения, т.е. переменные for-а напрямую не получится и надо их переприсвоить ..
 
 

Цитата:
Подстановка переменной среды может быть расширена следующим образом:
 
    %PATH:str1=str2%
 
расширит действие переменной среды PATH, заменяя каждое вхождение "str1" в
расширенном результате на "str2".  "str2" может быть пустой строкой для
эффективного удаления вхождений "str1" из расширенного вывода. "str1" может
начинаться со звездочки, и в этом случае это будет соответствовать любому
началу расширенного вывода до первого вхождения оставшейся части "str1".
 

Остальное здесь

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 22:14 10-05-2009
vchobo

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

Цитата:
как же нет ? вот по команде SET, в частности
по позиции может и нет, а вот остальное вполне реализуемо.
единственное ограничение - обработке подлежат только set-переменные окружения, т.е. переменные for-а напрямую не получится и надо их переприсвоить ..
 

Я уже использовал тупо такие преобразования строковых переменных типа:
%переменная:~n,m%  
В частности для получения из даты дня, месяца, года.  
Просто хотел посмотреть, где это описано в доке.
В описании конанды  SET этого не вижу (или мы разные хелпы смотрим)

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 22:32 10-05-2009
romrub

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

Цитата:
Просто хотел посмотреть, где это описано в доке.
В описании конанды  SET этого не вижу (или мы разные хелпы смотрим)

да, оказывается, ты прав, в файле об этом ни слова
прошу извинить
я то сам взял из встроенной справки - set /?
 
а по сути - вырезка слева/справа из значения переменной, замена подстроки - работает

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 22:52 10-05-2009
HaK1R



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

Код:
at /?

 
Добавлено:
либо вот это  

Код:
schtasks /create /?

Думаю разберешься

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 23:01 10-05-2009
vchobo

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

Цитата:
прошу извинить
я то сам взял из встроенной справки - set /?
 
а по сути - вырезка слева/справа из значения переменной, замена подстроки - работает  

Хорошо подколол
Там по set /? еще много чего полезного откопал, например !переменная!

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 23:17 10-05-2009 | Исправлено: vchobo, 23:19 10-05-2009
romrub

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

Цитата:
Хорошо подколол
Там по set /? еще много чего полезного откопал, например !переменная!  

 
я тоже ключом /? далеко не сразу пользуюсь, чаще пытаюсь в гугле найти ...

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 23:26 10-05-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет! Нужен батник:
1. С флешки, из папки \HideOut , где расположен сам батник и разные папки с файлами должна перемещаться выбранная по алфавиту папка в аналогичную папку по пути C:\Moved\ . Примерно должно выглядеть так: I:\HideOut\Folder_1 --> C:\Moved\Folder_1\Folder_1 .
2. В папке с именем, которое было взято ранее (пункт 1 - прим. C:\Moved\Folder_1) запускается файл Commander.exe .
3. Перемещение папки C:\Moved\Folder_1\Folder_1 (как пример) обратно на флешку в папку \HideOut.
 
Важно!!!
a) имя папки Folder_1 - это лишь пример выбранной по алфавиту папки из списка всех папок в каталоге с БАТником.
б) буква драйва для съемного носителя непостоянна.

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 00:08 11-05-2009 | Исправлено: timka85, 00:33 11-05-2009
HaK1R



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

Код:
 
@echo off
for /f "tokens=*" %%a in ('dir /ad /b /on') do (
move "%%a" "C:\Moved\%%~nxa"
start "" /wait "C:\Moved\%%~nxa\Commander.exe"
move "C:\Moved\%%~nxa" "%%a"
)
 

 
Добавлено:
и как я понял два раза папку Folder_1 не надо делать

Цитата:
3. Перемещение папки C:\Moved\Folder_1\Folder_1 (как пример) обратно на флешку в папку \HideOut.  

 
 
 
Добавлено:
да и еще, я не проверял

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 01:17 11-05-2009 | Исправлено: HaK1R, 01:21 11-05-2009
fristfrist



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в чем суть: меняю мак на сетевой карте и мне нужно выключить и включить сетевую карту. как это сделать батником?
т.е. локальное подключение, может нужно всего на всего какую-то службу перегрузить?
WinXP SP3

Всего записей: 19 | Зарегистр. 12-10-2008 | Отправлено: 09:38 11-05-2009 | Исправлено: fristfrist, 09:39 11-05-2009
anachrom

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
HaK1R
Вот хоца, что бы не по планировщику, а просто "если то"

Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 09:43 11-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fristfrist
Для в(ы)ключения сетевой карты пользуюсь утилитой cnic.exe
 
http://download.microsoft.com/download/f/d/0/fd05def7-68a1-4f71-8546-25c359cc0842/TechniquesForSimp2006_05.exe
 
Перезагрузка сетевой карты будет выглядеть так:

Код:
 
cnic "Название подключения" -d
cnic "Название подключения" -c
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:49 11-05-2009
fristfrist



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 01MDM, сп, скачал
но все таки хотелоть батником или я правильно понял, что нельзя это сделать, тогда можно гденибудь достать исходные данного приложения?

Всего записей: 19 | Зарегистр. 12-10-2008 | Отправлено: 10:01 11-05-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