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

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

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

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117 118

   

KLASS



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

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

Всего записей: 11425 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
Fannat



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
 
А если компов много? Хотелось бы универсальный файлик.
 
Добавлено:
to Maza Faka
 
Ты его из сетки берешь и к себе кидаешь? Или кидаешь от себя в сетку?
 
Мне надо чтоб я его запускал с сервера, и мне на комп копировался файл.

Всего записей: 283 | Зарегистр. 25-11-2005 | Отправлено: 08:30 06-07-2007
Maza Faka



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

Код:
 
@echo off
set number=10
For /l %%a in (1,1,%number%) do (
copy /y "\\comp%%a\c\Program Files\Winrar\rarreg.key" C:\comp%%a_rarreg.key
)
 

Во второй строке кода, замени 10 на кол-во компьютеров с которых надо будет копировать, так же заменишь пути на нужные тебе.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:51 06-07-2007 | Исправлено: Maza Faka, 09:56 06-07-2007
Accessor



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
Наверное, более универсально и эффективно было бы прогнать этот цикл с использованием текстового файла в котором лежат имена компьютеров.
Такой список можно легко получить из AD с помощью команды

Код:
 
dsquery * forestroot -scope subtree -filter objectcategory=computer -attr name –l > @computers.txt
 

да, и ещё конструкция \c\Program Files\
будет работать только в случае, если на каждом из обрабатываемых компьютеров расшарен диск C:\ под именем С. А если сделать \c$\Program Files\ то работать будет всегда при наличии админских прав и системной шары.

Всего записей: 2863 | Зарегистр. 31-10-2003 | Отправлено: 10:59 06-07-2007 | Исправлено: Accessor, 11:02 06-07-2007
0177055964

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

Всего записей: 7 | Зарегистр. 04-07-2007 | Отправлено: 14:58 07-07-2007
Bubek

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь.  
Есть два компа в сети, на одном установлен Консультатнт+ (база законов) : D:\consbel\Base,  
обновляется раз в месяц, есть другой комп, на нем фтп, папка Base. (название диска пока не знаю)  
Можно ли сделать так чтобы при запуске батника, файлы из D:\consbel\Base копировались на фтп. (название диска и фтп я надеюсь потом поменяю сам).  

Всего записей: 312 | Зарегистр. 26-01-2006 | Отправлено: 16:20 07-07-2007
AmdAd

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто подскажет как командой start запустить .exe файл с пробелами в имени. Bat'ник находится в директории с программой. Имя файла в кавычки ставить пробовал, но все равно ничего не запускается.

Всего записей: 401 | Зарегистр. 17-01-2006 | Отправлено: 01:44 08-07-2007
Elroir



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

Код:
start "" "c:\program files\dir with spaces\program.exe"

 
Добавлено:
Bubek
Создаешь текстовый файл ftp.txt:

Код:
 
open твой_адрес_фтп
имя_пользователя
пароль
cd твоя_директория_на_фтп
binary
mput *.*
bye
 

После этого делаешь батник:

Код:
 
@echo off
pushd D:\consbel\Base
ftp -i -s:ftp.txt
popd
 

Про команды ftp можно почитать тут -  
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ru/library/ServerHelp/c4b1422d-c552-4e43-92ed-6eaf74699dac.mspx?mfr=true

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:46 08-07-2007 | Исправлено: Elroir, 02:24 08-07-2007
violant



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста. В некой папке создаются подпапки в формате yyyymmdd_hhmmss. Как в них попасть если надо папку ту которая создана по сегодняшнему дню

Всего записей: 364 | Зарегистр. 08-11-2006 | Отправлено: 15:42 08-07-2007
Maza Faka



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

Цитата:
попасть если надо папку ту которая создана по сегодняшнему дню

В принципе не сложно, а если папок созданных в один день много? Ты лучше обрисуй задачу подробнее, а мы подумаем

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 17:59 08-07-2007
violant



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
На шаре сервера 1 раз в день создается папка указанного формата(ну а в ней файл). Создаются они исправно и папок с 2-мя одинаковыми днями не бывает. Но бывает что не создается. Хотелось бы еще проверку типа: если папка есть, то заходим в нее, а если нет -- то записываем какую-нибудь фразу типа "(date)(time) Папка не создалась " в файлик (*.log). В общем-то даже если 2-е папки на один день создадутся, то не имеет значение с какой из них брать.

Всего записей: 364 | Зарегистр. 08-11-2006 | Отправлено: 21:26 09-07-2007
Maza Faka



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

Код:
 
@Echo off
set path_=d:\trash
 
for /f "tokens=4*" %%a in (
'dir /a:d /t:c %path_% ^| findstr /v /c:" ." ^| find "%date%"') do (
set folder=%%a
set var=%%b
)
if defined folder (
@if defined var (
set folder=%path_%\%folder% %var%) else (
set folder=%path_%\%folder%)) else (
echo Folder %date% today not create>> myLog.txt)
 
if defined folder cd /d "%folder%"
 

В общем, папка ищется по дате создания, так меньше гимора. Путь (d:\trash) заменишь на нужный тебе.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:29 10-07-2007 | Исправлено: Maza Faka, 09:36 10-07-2007
violant



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
Спасибо получилось. Я уже просто сделал в Power Shell, но хотелось и в команд коме. Чуть-чуть логирования добавлю и вперед

Всего записей: 364 | Зарегистр. 08-11-2006 | Отправлено: 12:07 10-07-2007
royt

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто подскажет, как сконвертировать содержимое переменной окружения из одной кодовой страницы в другую (OEM в ANSI)?
Очень хотелось бы вариант без вывода в файл (но можно с перенаправлением вывода, т.е. "конвейеризацией") и без использования "процедур" (типа CALL :...) - чтобы выполнить сию процедуру "одной строкой".
 
Пробовал использовать утилитку conset в варианте типа "echo %VAR%| convert ...|conset VAR=" - но в этом случае в переменную заносится перевод строки, что не позволительно. Как подавить вывод переводов строки?
 
А может есть какие утилитки, способные выполнять конвертацию содержимого переменной "по месту"?

Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 15:36 10-07-2007 | Исправлено: royt, 15:39 10-07-2007
yurkesha



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну можно использовать нечто вроде:
Код:
set param=абвгдеж
chcp 1251
FOR /f "usebackq tokens=1* eol=;" %%a IN (`echo %param%`) DO SET param=%%a %%b
Добавлено:
Естественно в примере я подразумеваю код в кодировке cp866
 
Еще добавлено: а вот ANSI в OEM чуть-чуть посложнее будет:  
(тут уже естественно кодировка win1251)
Код:
chcp 1251
set param=абвгдеж
chcp 866
FOR /f "usebackq tokens=1* eol=;" %%a IN (`echo %param%`) DO SET param=%%a %%b


----------
Всем непричастным рекомендую прогулки на свежем воздухе

Всего записей: 2757 | Зарегистр. 15-12-2003 | Отправлено: 15:53 10-07-2007 | Исправлено: yurkesha, 16:10 10-07-2007
coolpunk



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Когда-то вроде спрашивал уже такое, но не могу ни вспомнить, ни найти.
Допустим выполняем: FOR %%f IN (*.exe) DO %%f
Список передается по алфавиту. Можно ли по-другому отсортировать список, например, по дате?

Всего записей: 543 | Зарегистр. 16-04-2004 | Отправлено: 04:56 11-07-2007
Maza Faka



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

Код:
 
@echo off
for /f "tokens=*" %%a in ('dir /b /o:d *.exe') do echo %%a
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:33 11-07-2007
Kin4



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hi, All!
Подскажите, уважаемые Гуру, как решить такую задачу в командном файле:
нужно получить (импортировать) настройки сетевого соединения
1. Ip адрес
2. Маску
3. шлюз (gateway)
4. DNS1/DNS2
5. Являются эти настройки установленными вручную или через DHCP (авто)
 
Получить в любом виде текстовом (предпочтительнее) или вырезкой из реестра, главное, чтобы потом можно было другим bat-ником восстановить их.
 
Короче, в прикладном смысле, часто приходится менять эти настройки, задолбался ручками
, а создать бы пару-тройку профилей и одним кликом их менять....
Может это сделать сетевыми командами или брать прямо из реестра?
 
Help, please...

Всего записей: 49 | Зарегистр. 15-06-2005 | Отправлено: 15:07 16-07-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kin4
Для каждой из конфигураций, делаешь так:
netsh dump>config_N.txt
здесь N - номер для каждого файла.
Если нужно восстановить значения определенной конфигурации, запускаешь следующую команду:
netsh -f config_N.txt

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:33 16-07-2007
maklab



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

Всего записей: 1774 | Зарегистр. 20-08-2006 | Отправлено: 21:15 16-07-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maklab
В шапке, в разделе "Полезные ссылки" - утилита blat.

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:19 16-07-2007
   

Страницы: 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 109 110 111 112 113 114 115 116 117 118

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru