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

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

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

Всего записей: 13 | Зарегистр. 31-10-2008 | Отправлено: 03:35 01-11-2008
Learsi1948

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу прощенья за повтор... Очень нужна Ваша помощь!
В этом моменте из файла ip.txt должны передаваться айпишники и дальше прога должна их использовать
set server=192.168.%%p.1
md svedenija
for /f "eol=;" %%p in (ip.txt) do (
net use v: /delete
net use v: \\%server%\t$ /user: ¤¬Ё-Ёбва в®а ****** dir v:\ /a >> svedenija\man%%p.txt
pause
net use v: /delete)
 
так вот в айпишник (%server%) переменная p не передается... Что не так?
Заранее спасибо!

Всего записей: 12 | Зарегистр. 10-04-2008 | Отправлено: 19:23 01-11-2008
Elroir



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

Цитата:
В обычном случае, чтобы узнать значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы батника, нужно использовать команду setlocal enabledelayedexpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же - таким, каким было до входа в цикл.



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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:15 01-11-2008
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите, плиз!
есть файл usr_out.txt такого содержания:
 
441,5,3000.03.37.7751,REXP098,2558,2378,2373,2375,2371,0,#HOST,02.11.2008,18.45,27.10.2008,25.10.2008,21.10.2008,02.11.2008,18.45,P,0,"Чувашская Республика (приложение)",2558,2487,2471,2415,02.11.2008,27.10.2008,25.10.2008,21.10.2008
 
мне нужно запустить батник чтобы он взял из этого файла в той строке где #HOST вот это значение REXP098 в переменную
 
сам батник
 
for /f "tokens=*" %%i in ('findstr #HOST RECEIVE\usr_out.txt') do (
for /f "tokens=1 delims=*," %%i in ("%%i") do start /w CONS.EXE /QUEST /ADM /BASE_%%i)

Всего записей: 1461 | Зарегистр. 28-10-2007 | Отправлено: 18:56 02-11-2008
Elroir



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

Код:
 
@echo off  
for /f "tokens=4 delims=," %%a in ('findstr #HOST lines.txt') do (
start /w CONS.EXE /QUEST /ADM /BASE_%%a
)  
 

Вообще-то, 01MDM уже отвечал, как взять нужное тебе значение.

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:06 02-11-2008
FuZZion

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди... Подскажите, пожалуйста, можно ли в батнике сделать так, чтобы "вынуть" название сетевого интерфейса и вставить его в переменную?(А лучше чтобы batник переименовывал сетевой интерфейс в LAN, например) И как это сделать. И ещё по поводу комманды netsh - можно ли с помощью неё (или с пом. др. комманды) не просто поменять IP адрес хоста, а добавить новый IP, маску и шлюз. Спасибо!

Всего записей: 15 | Зарегистр. 12-11-2007 | Отправлено: 10:28 03-11-2008 | Исправлено: FuZZion, 12:06 03-11-2008
Iacoyn



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ в версии для печати не нашёл, а может плохо искал?
 
Как изменить время модификации файла из коммандной строки?
В смысле атрибуты файла? Просто есть программы (типа Lingvo) которые проверяют дату файла.
 
Желательно без использования сторонних утилит.
Спасибо.
 
 
Добавлено:
FuZZion
netsh interface set interface /?
выводит такое
Использование: set interface [name = ] Имя_интерфейса
              [ [admin = ] ENABLED|DISABLED
              [connect = ] CONNECTED|DISCONNECTED
              [newname = ] Новое_имя ]
 
      Устанавливает параметры интерфейса.
 
      IfName  - Имя интерфейса
      admin   - Должен ли этот интерфейс быть разрешенным (только не в LAN).
      connect - Подключен ли этот интерфейс (только не в LAN).
      newname - Новое имя этого интерфейса (только LAN).
 
      Примечания:
      - Кроме текущего имени должен быть указан по крайней мере один параметр.
      - Если указано connect = CONNECTED, то интерфейс будет автоматически
        разрешен, даже если указано значение параметра
        admin = DISABLED.
Может это то, что вам надо?
 
Добавлено:
Типа так
netsh interface set interface name = Network newname = "Net 1"

----------
Самые древние IT отделы - средневековые камеры пыток...

Всего записей: 2379 | Зарегистр. 07-05-2002 | Отправлено: 15:25 03-11-2008
FuZZion

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

Цитата:
Типа так  
netsh interface set interface name = Network newname = "Net 1"

Так пишет "Интерфейс с таким именем не зарегистрирован на муршрутизаторе". Да и даже если можно будет с этой коммандой переименовать интерфейс, то для неё нужно самому вводить старое название, а оно меня не интересует. Меня интересует какое название интерфейса будет в итоге.

Всего записей: 15 | Зарегистр. 12-11-2007 | Отправлено: 16:55 03-11-2008
Iacoyn



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
getmac выдаёт GUID имя интерфейса
или
netsh interface show interface
показывает список интерфейсов.
В реестре в разделе
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
лежат их параметры.
Пиши что хочешь.

----------
Самые древние IT отделы - средневековые камеры пыток...

Всего записей: 2379 | Зарегистр. 07-05-2002 | Отправлено: 17:35 03-11-2008
Learsi1948

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

Цитата:
Прошу прощенья за повтор... Очень нужна Ваша помощь!
В этом моменте из файла ip.txt должны передаваться айпишники и дальше прога должна их использовать
set server=192.168.%%p.1
md svedenija
for /f "eol=;" %%p in (ip.txt) do (
net use v: /delete
net use v: \\%server%\t$ /user: ¤¬Ё-Ёбва в®а ****** dir v:\ /a >> svedenija\man%%p.txt
pause
net use v: /delete)
 
так вот в айпишник (%server%) переменная p не передается... Что не так?
Заранее спасибо!
 

 
 

Цитата:
В обычном случае, чтобы узнать значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы батника, нужно использовать команду setlocal enabledelayedexpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же - таким, каким было до входа в цикл.  

 
Проблема в том, что в цикл вообще никакая переменная не передается... Мне бы хотя бы сделать, что бы хоть что-то передавалось

Всего записей: 12 | Зарегистр. 10-04-2008 | Отправлено: 01:20 04-11-2008
Elroir



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

Цитата:
set server=192.168.%%p.1

Откуда здесь берется переменная %%p?

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 09:23 04-11-2008
Auren

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

Всего записей: 614 | Зарегистр. 17-10-2006 | Отправлено: 12:42 04-11-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Auren
Какой формат у системной даты (что выдает команда "echo %date%")?

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:26 04-11-2008
volodyalipkin



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

Код:
for /L %i IN (1,1,20) do (set j=%i && echo %j%)

получаю 20 раз 20. Хотелось бы 1 2 3 ... В чем ошибка?
 
 
Добавлено:
Auren
А ссылка · Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) из шапки не помогает?

Всего записей: 771 | Зарегистр. 12-10-2002 | Отправлено: 18:56 04-11-2008
Learsi1948

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
%%p берется из файла ip.txt где прописаны все айпишни и разделены ";"

Всего записей: 12 | Зарегистр. 10-04-2008 | Отправлено: 20:37 04-11-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Learsi1948
Но ведь тогда команда "set server=192.168.%%p.1" исполняется внутри цикла (того самого цикла, в котором читается айпишник), так?
Короче, поставь в начале батника строчку "setlocal enabledelayedexpansion", и используй !server! вместо %server%.
 
Добавлено:
volodyalipkin
http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=1580#4
Кроме того, значение "20" у тебя выдается 20 раз, только при повторном запуске всей команды. При первом запуске 20 раз выдается значение "%j%".

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:13 05-11-2008
MGrom



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Помогите разобраться с несложной задачкой )
 
Нужно написать батник, который будет в искать в папке файлы с определёнными словами и при нахождение, копировать файлы в другую папку.
 
1. Получаем список файлов dir
2. find помогает найти файлы
3. copy копирует найденные файлы
 
Как связать найденное find’ом и отправить результат команде copy?

Всего записей: 15 | Зарегистр. 24-01-2007 | Отправлено: 11:18 05-11-2008
Iacoyn



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почитай про перенаправление вывода.
http://www.shaune.net/blog/2007/09/every-time-i-need-to-redirect-dos.html

----------
Самые древние IT отделы - средневековые камеры пыток...

Всего записей: 2379 | Зарегистр. 07-05-2002 | Отправлено: 11:25 05-11-2008
Kilyan



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

Всего записей: 886 | Зарегистр. 04-09-2008 | Отправлено: 13:51 05-11-2008
MGrom



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

Цитата:
Нужно написать батник, который будет в искать в папке файлы с определёнными словами и при нахождение, копировать файлы в другую папку.  
 
1. Получаем список файлов dir  
2. find помогает найти файлы  
3. copy копирует найденные файлы  
 
Как связать найденное find’ом и отправить результат команде copy?  

 
Ещё нужно чтобы find искал только в файлах за последний день  
 

Цитата:
Почитай про перенаправление вывода.  
http://www.shaune.net/blog/2007/09/every-time-i-need-to-redirect-dos.html

 
C использование оператора канала (|) получаеться примерно так:
 
dir c:\ /s /b | find "LOG" | copy c:\find_files
неработает , чегото не хватает (

Всего записей: 15 | Зарегистр. 24-01-2007 | Отправлено: 15:47 05-11-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