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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите вот с чем:
 
Как записать в лог файл действия выполненные rar.exe  
Чтоб действия отображались в консоли! и хоть сразу или после окончания записывались в лог.
 
это не подходит-
for /F "usebackq delims=" %%i in (`command`) do echo %%i&echo %%i>>FileLog.txt
 
т.к в лог пишется все - и путь откуда запущен ком.файл ....
помогите плиз!

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 14:49 17-10-2008
Elroir



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

Цитата:
Как записать в лог файл действия выполненные rar.exe

Используй утилиту mtee.exe.

Код:
rar ... | mtee log.txt

 
Добавлено:
brand1

Цитата:
Как в батнике в переменную получить дату на n-дней меньше текущей.


Код:
 
@echo off
set "N=10"
ECHO wscript.echo date-%N%>tmp.vbs  
FOR /F %%A IN ('cscript tmp.vbs //Nologo') DO SET "DAY=%%A"  
DEL tmp.vbs
ECHO %DAY%
 


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

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

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

Всего записей: 30 | Зарегистр. 27-08-2008 | Отправлено: 16:45 17-10-2008
KapralBel



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

Цитата:
mne ktot otvetit?

На какой вопрос?
 
или нам еще поискать сам вопрос?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 19:21 17-10-2008
slinzex

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 raz pishu:
 
У нас учитель по истории употребляет POWERPOINT presentation. Ну а нам приходится всё в ручную катать так как нам он не дает файлик с его флешки.
 
Так вот, как можно запрограмировать комп чтоб в назначенное время он произвел "тихую" копировку флешки. Кейлоггер чтоли поставить или батник прописать?? Я им не польз...
 
1-сисстема XP и антивирус PANDA стоят. Она не будут возражать?
2-И ещё: файлик я думаю больше 3МБ может быть, т.к много рисунков. А никак нельзя склонить флешку целиком в тихом режиме. Типа снять бэкап ???
 

Всего записей: 30 | Зарегистр. 27-08-2008 | Отправлено: 23:17 17-10-2008
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
slinzex
1. Панда вообще загадочный зверек - сказать не могу
 
Если есть физический доступ к компу то снять проще всего через общие шары C$, D$, E$  
простым копированием

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 00:23 18-10-2008
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Меня брат уже задолбал сбрасывать настройки сервака. Я написал пару батников и тут столкнулся со следующей проблемой: узнать какие процессы запущены можно путем одной команды, но потом, чтобы не выбирать между двумя теми батниками(который из них должен быть запущен) можно ли нарисовать батник, который бы спрашивал какой именно из нужно запускать по нажатию некоторой пимпы(скажем имя батников "1" и "2" и предлагается соответсвенно нажать "1" для запуска первого и т.д.) Если вопрос поднимался, то ткните носом, плиз. А то серьезно времени мало, а серваком биться уже надоело.

Всего записей: 2037 | Зарегистр. 05-07-2008 | Отправлено: 22:18 19-10-2008
Learsi1948

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста! Для зачета потребовали написать батник который делает вот какую штуку: сначала задает вопрос типа хотим сервер или манагер опрашивать, затем, после выбора он должен просканировать все айпи данного диапазона и выяснить какие файлы находятся в конкретных папках. списки файлов сохранить в файлы, для каждого айпишника свой.
я сочинил вот это. Но оно не работает так как dir по сетке не хочет арбайтать. Нужен net use. Что делать? Да и вообще, это мой первый опыт, наверное и в синтаксисе проблемы... Помогиииите)))  
@echo off
:start choice /c s,m,c Server, Manager, or Cancel  
 
if %errorlevel% LEQ 1 echo Вы выбрали сервер GOTO serv
        
:serv echo Вы выбрали сервер  
if exist c:svedenija\nul GOTO obs else MKDIR c:\svedenija GOTO obs
bs for /L %%P in (1#,1#,84) do net \\192.168.%%P.100\share\t:\ /a > c:\svedenija\serv%%P.doc GOTO :end
 
if %errorlevel% LEQ 2 GOTO man
if %errorlevel% LSS 1 GOTO osh
if %errorlevel% GTR 2 GOTO osh    
 
:man choice /c t, s, O, M Teaspoon, Soft, O:\, M:\
 
if %errorlevel% LEQ 1
if exist c:svedenija\nul GOTO obm1 else MKDIR c:\svedenija GOTO obm1    
bm1 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\o:\teaspoon\ /a > \svedenija\man-teaspoon%%P.doc
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
                    
if %errorlevel% LEQ 2
if exist c:svedenija\nul GOTO obm2 else MKDIR c:\svedenija GOTO obm2
bm2 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\m:\soft\ /a > \svedenija\man-soft%%P.doc GOTO end
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
if %errorlevel% LEQ 3
if exist c:svedenija\nul GOTO obm3 else MKDIR c:\svedenija GOTO obm3
bm3 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\o:\ /a > \svedenija\man-O%%P.doc GOTO end
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
if %errorlevel% LEQ 4
if exist c:svedenija\nul GOTO obm4 else MKDIR c:\svedenija GOTO obm4
bm4 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\m:\ /a > \svedenija\man-M%%P.doc GOTO end
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
if %errorlevel% LSS 1 GOTO osh
if %errorlevel% GTR 4 GOTO osh
sh echo Вы ввели другой символ. choice /c z, f Zanovo, Finish
if %errorlevel% LSS 1 GOTO osh
if %errorlevel% GTR 2 GOTO osh
if %errorlevel% LEQ 1 GOTO start
if %errorlevel% LEQ 2 GOTO end  
    
 
:end exit echo Пакетная программа закончена Запрошенные данные записаны в каталоге svedenija на диске С pause echo Для выхода нажмите CTRL+C
 

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос.
I.
а как можно (какой командой) передать в текстовый файл определённый текст?
Текст можно в самом батнике написать, но перед этим содержимое текстового файла должно быть пустым или очистить !
 
 
II.
Или может поможете сделать так:
есть список папок в директории Base
.\RLAW086\
.\RLAW087\
.\RLAW091\
.\RLAW095\
.\RLAW096\
В этой папке есть файлик BASELIST.CFG (в текстовом формате)
 
Вопрос - можно как нибуть зациклить обработку этой папки , так чтобы батник делал перебор этой папки , т.е. брал название первой папки и вставлял в файл BASELIST.CFG и так до последней папки в этой директории
ну приблизительно так:
 
1.берём первое название папки в дир. Base и вставляем в BASELIST.CFG
2.переход на уровень выше (т.е.   .\base\)
3.бла бла - операции с базой (запуск exe с командной строкой), после завершения всех операций переход к п.1.  
И так пока все папки в директории Base не будут обработаны.  
 

Всего записей: 1358 | Зарегистр. 28-10-2007 | Отправлено: 09:02 20-10-2008
vgik07

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите разобраться!
Нужно строку начинающуюся с 1:245 в 1.ctl найти, скопировать следующей строкой, первую уже из 2-х изменить, заменить определенных знаки слово mera 3 на vera5 и во второй тожу заменить эти же знаки на надежда 7.85 и на выходе получить файл 2.ctl  

Всего записей: 2 | Зарегистр. 20-10-2008 | Отправлено: 15:05 20-10-2008
rBBWYwg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще вопрос. Есть ли способ добавить к имени файла название папки, в которой он находится? Например, файл TEST.txt находится в папке FOLDER, и батник меняет имя файла на FOLDER_TEST.txt или TEST_FOLDER.txt, или подобное.

Всего записей: 23 | Зарегистр. 14-10-2008 | Отправлено: 15:07 20-10-2008
vserd

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

Цитата:
I.  
а как можно (какой командой) передать в текстовый файл определённый текст?  
Текст можно в самом батнике написать, но перед этим содержимое текстового файла должно быть пустым или очистить !

В батнике напиши строки
@echo sampletext >file1.txt
@echo sampletext2>>file1.txt
затем в другом
@echo sampletext3 >file1.txt
@echo sampletext4 >file1.txt
 
запусти первый и посмотри на результат, запусти второй и посмотри на результат (содержимое file1.txt).
 

Цитата:
есть список папок в директории Base  

нехочется мне делать сизифов труд отлаживая код, но шаги распишу:
1 .заходишь в base (сd base)
2. делаешь вывод имен папок в файл (команда DIR параметры >File1).
3. возвращаешся на один уровень вверх cd ..
4. затем с помошью команды for вычитываешь из base\file1 названия папок  
5. Записываешь в BASELIST.CFG имя папки (echo %%I > BASELIST.CFG) и вызываешь обработку (call или программа с параметрами).
 
Все команды изучаешь с ключем /? (cd /?, for /?. dir /? .....), изучаешь внимательно, пробуешь.  
Вместо "долгоиграющих" программ ставь Echo testxxx. Когда отладишся заменишь на реалку.
 
Крайне рекомандую почитать эту тему и архивные ветки (версии для печати). Найдешь массу полезного, да и шаблоны можно накопипастить. Задачка часто встречается.
 

Всего записей: 2062 | Зарегистр. 08-05-2002 | Отправлено: 16:36 20-10-2008
Elroir



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

Цитата:
Есть ли способ добавить к имени файла название папки, в которой он находится? Например, файл TEST.txt находится в папке FOLDER, и батник меняет имя файла на FOLDER_TEST.txt или TEST_FOLDER.txt, или подобное.


Код:
 
@echo off
for %%a in (*.txt) do call :add_dir "%%a" "%cd%"
goto :EOF
:add_dir
ren "%~1" "%~nx2_%~nx1"
 


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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:14 20-10-2008
Learsi1948

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хелп! Нужно узнать список файлов лежащих в конкретной папке или на диске на компе в сети. Известен IP. Я так понимаю, что нужна net use... Но как ей пользоваться я не понимаю?

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



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

Цитата:
Но как ей пользоваться я не понимаю?

http://technet2.microsoft.com/windowsserver/ru/library/dd619380-bb33-4d3a-b0b5-29c6206000351049.mspx?mfr=true
Там же есть и примеры использования.
Вот еще описание : http://magik-net.info/page.php?id=51

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:37 20-10-2008 | Исправлено: Elroir, 18:40 20-10-2008
fayzullin



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
На тему "простой способ получения даты и времени". Раньше искал в этой ветке что-нибудь попроще, но ничего удобного не нашел. Написал свое и выкладываю:
 
echo %DATE:~-4%.%DATE:~-7,-5%.%DATE:~-10,-8% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
 
Результат в формате YYYY.MM.DD HH-MI-SS

Всего записей: 9 | Зарегистр. 12-09-2005 | Отправлено: 21:23 20-10-2008 | Исправлено: fayzullin, 21:32 20-10-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fayzullin
Способ описан тысячу раз и очень сильно зависит от настроек формата даты.
Представь себе, что дата дается как "08/10/21" или "21-10-08" или "Tuе 21-Oct-2008"

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:25 21-10-2008 | Исправлено: Elroir, 21:47 21-10-2008
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги, хочу поcтавить на запуск по загрузке команду net use \\comp\papka user:ivanov parol для принудительного залогинивания на удалённые ресурсы под нужными МНЕ, а не пользователю данными.  
Но если прописать в автозагрузку, не важно а "startup" или в Run в реестре, вываливается ошибка, т.к. попытка запуска батника похоже происходит до инициализации сети.
Может кто знает как эту проблему решить? Отсрочка запуска какя нибуть или запуск  по контролю?  

Всего записей: 12952 | Зарегистр. 15-03-2006 | Отправлено: 12:52 21-10-2008
vgik07

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, что делаю не правильно?
нужно что бы проверялись файлы поочереди, а
получается все в куче и работает долго.
 
@echo off
chcp 1251
;Подготовка для использования клентом связи через Интернет
;E:\!!!!\1
for /f "tokens=*" %%a in ('more^<t-mail.ctl') do call :_replace %%a  
goto eof  
 
:_replace  
set i=%*  
echo %i%  
set i=%i:Port    1=Port    0%  
set i=%i:Port    2=Port    0%  
set i=%i:Port    3=Port    0%  
set i=%i:Port    4=Port    0%  
echo %i%>>t-mail1.ctl  
goto eof  
 
:eof  
 
for /f "tokens=*" %%b in ('more^<subst.lst') do call :_replace1 %%b
goto eof1
 
:_replace1  
set j=%*  
echo %j%  
set j=%j:1:1/1 Phone 301-9158=1:1/1 ipAddr 212.119.170.210:60179 flags IFC%  
echo %j%>sub.ctl  
 
 
:eof1  
 
for /f "tokens=*" %%c in ('more^<sub.ctl') do call :_replace2 %%c  
goto eof2
 
:_replace2  
set h=%*  
echo %h%  
set h=%h:1:1/1 ipAddr 212.119.170.210:60179 flags IFC=# ipHidden 62.181.41.158:60179 flags IFC%  
echo %h%>sub2.ctl  
goto eof2  
 
:eof2
COPY sub.ctl+sub2.ctl  subst3.lst
copy t-mail1.ctl+IP1.txt t-mail.ctl
del t-mail1.ctl
del sub.ctl
del sub2.ctl

Всего записей: 2 | Зарегистр. 20-10-2008 | Отправлено: 14:07 21-10-2008
1001110101

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи не подскажите как символ перевода строки в текстовом файлике заменить пробелом?

Всего записей: 6 | Зарегистр. 22-10-2007 | Отправлено: 20:15 21-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru