cmd.exe - одновременный вывод информации на монитор и...

Хочу все знать 24.06.2004 - 14:03 | Если сделать к примеру dir > 1.txt то результат команды dir запишеться в файл 1.txt А можно ли сделать чтобы инормация и на монитор выводилась, и в txt записывалась одновременно?
MayKoPSKiy 1 - 24.06.2004 - 15:57 | Написать батник :) например 1.bat ipconfig >ip.txt ipconfig
_van 2 - 24.06.2004 - 18:09 | Cоздай в блокноте файл vstart.bat помести текст (3 строчки внизу) и запусти. запусти в cmd.exe help запусти такой пример for /? или такой net use /? ` echo off echo Для досрочного выхода жмите ctrl+break, скорость работы примерно 10s/mb for /L %%I in (0,0,1) do (echo 1234567890)>>C:\01\for_del\t.txt ` Когда подразберешься будут вопросы- намыль
Хочу все знать 3 - 25.06.2004 - 09:26 | Это все немножко не то... Объясняю, для чего мне это надо, может другие идеи будут. На сервере вертится круглосуточно cmd (мониторит определенные события). Результат его работы выводится на экран. Я хочу, что бы результат одновременно с выводом на экран, еще и в файл записывался, чтобы можно было потом посмотреть, когда что происходило.
S@M 4 - 25.06.2004 - 13:40 | Гони все в файл и выводи его периодически на экран.
Boroda 5 - 25.06.2004 - 18:39 | Блин. Весь день убил, а так ничё и не придумал. :-( Могу предложить только запустить ещё одно окно командной строки и в нём дать cmd>log.txt Тогда одна cmd будет показывать, а другая писать.
_van 6 - 25.06.2004 - 21:29 | Boroda крут! Ну раз вопрос subjecta закрыт то может еще ответишь на вопрос по коду ниже: ` echo off cls setlocal set allarhdir=%cd%\..\arh_proj set nowdatestr=%date:~9,4%.%date:~6,3%%date:~3,2% set nm=0 for /d %%I in (%allarhdir%/%nowdatestr%*) do ( set nn=%%~nxI rem строчка "set nn=%%~nxI" аналогична set nn=%%I echo вот здесь я и незнаю как с косвенностью !nn! %nn% %%~nxI if /I !nm! lss !nn:~11,2! set nm=!nn! ) echo %nm% ` Почему невыводится строчка "echo vvv !nn! %nn% %%~nxI" ? Шаблон каталога в цикле можно задать %cd% только в нем создать каталоги "01","02" Как сделать чтобы она выводилась на каждый проход цикла?
_van 7 - 25.06.2004 - 21:33 | вот ключевой непонятный момент ` rem set nm=0 for /d %%I in (%cd%*) do ( set nn=%%~nxI echo вот здесь я и незнаю как с косвенностью !nn! %nn% %%~nxI rem if /I !nm! lss !nn:~11,2! set nm=!nn! ) rem echo %nm% ` В %cd% нужно иметь несколько каталогов типа "01", "02"
_van 8 - 25.06.2004 - 21:49 | задача простая- есть такая файловая структура d:\_van\vproj\name_proj\project d:\_van\vproj\name_proj\arh_proj d:\_van\vproj\name_proj\arh_proj\2004.04.29_01 d:\_van\vproj\name_proj\arh_proj\2004.06.15_01 d:\_van\vproj\name_proj\arh_proj\2004.06.15_02_before_restucture_vok Нужно написать bat с параметром(пример "before_restucture_vok") который бы создавал в d:\_van\vproj\name_proj\arh_proj папку с именем "текущаядата_номерархива_примечание. Причем номер архива следующий от существующего. понятно что в эту папку копируется все содержимое d:\_van\vproj\name_proj\project
_van 9 - 25.06.2004 - 21:56 | Все готово кроме определения номера последнего существующего архива вот еще несколько работающих ключевых строк из этого проекта ` set /A i=%i%+1 if %i% lss 10 set i=0%i% rem md %newarhivdir% rem xcopy "%cd%" %newarhivdir% /e /v /-y ` если кто разберется с этим -очень хотелось бы увидеть результат
Хочу все знать 10 - 27.06.2004 - 14:20 | Вообще то сабж еще открыт. Вариант предложенный Boroda № 5 не подойдет :-( Этот cmd мониторит определенные порты. И если запустить сразу 2 cmd, то работать будет только 1.
Boroda 11 - 27.06.2004 - 14:38 | Ух... Кажется нашёл. Вот cmd-файл. Выдерни, что нужно и отрихтуй под свой код. - rem Выводим папки текущей директории, сортируя их по дате rem и столбцам от самой новой до самой старой rem Нумеруем все строки получающегося текста и отправляем rem строку номер 6 (с самой верхней папкой) в файл test dir/a:d/o:-d/d|find/v /n ""|find "[6]">test rem Присваиваем переменной last значение первой подстроки (и, rem что было самым сложным, единственной) строки из файла test FOR /F %%I IN (test) DO @set last=%%I rem Здесь (просто для демонстрации) выводим на экран нужные rem нам символы из названия папки с самой поздней датой echo %last:~6,3% rem Освобождаем ненужную больше переменную set last= - Этот пример справедлив для условия, если архивы представляют собой папки, лежащие в текущей директории и номером архива являются третий, четвёртый и пятый символы в названии папки. Теперь надо попытаться упростить. Но сначала выспаться. :-))
Boroda 12 - 27.06.2004 - 14:43 | k 11. Это для 9. - то 10. В смысле когда запускаешь второй, он отнимает мониторинг у первого или даже и не пытается?
Хочу все знать 13 - 27.06.2004 - 16:38 | to 12 Второй отнимает мониторинг у первого
Boroda 14 - 28.06.2004 - 16:57 | Напиши, каким образом надо запустить cmd на мониторинг. Я просто не знаю, как это сделать. Хочу так же запустить, мож какие мысли появятся.
_van 15 - 29.06.2004 - 14:11 | Спешу поделится: arhproj.bat внедрен!- (уже используется для проекта arhproj.bat) :) Ключевая деталь реализации вставка строчки setlocal ENABLEDELAYEDEXPANSION запрешающая интерпетатору раннее связывание переменных. ` Вопрос: Как исправить маленький недостаток- при задании параметра (коментария архива)Нужно чтобы коментарий шел после символа "_" получается сделать только "2004.06.29_24first work version" "2004.06.29_24_first work version" тоесть вставить символ "_" если коментарий не пустой Вопрос как переписать код ниже? if %*%== set str= else set str=_%*% set newarhivdir=%allarhdir%/%nowdatestr%_%i%%str%
van1 16 - 29.06.2004 - 14:17 | Легко, смотри шире set str=_%*% if !str!==_ set str= set newarhivdir=%allarhdir%/%nowdatestr%_%i%%str%
_van 17 - 29.06.2004 - 14:33 | Да, верно. Всё теперь напихал после каждой команды строк if errorlevel 1 set verror=1 и в конце вставил if !verror!==1 (echo ERROR - try to save failed, ОШИБКА!сохранение неудачное) else echo OK! pause rem Признаком отсутствия ошибки будет окно с OK!
_van 18 - 29.06.2004 - 14:38 | Boroda, не разобрал я FOR /F %%I IN (test) DO @set last=%%I В чем смысл "@"? упоминаний об этом не видел, но предположить что это запрет раннего связывания неполучается, так как это присвоение, а не обращение. И у меня как запрет раннего связывания это не заработало.
Boroda 19 - 30.06.2004 - 07:11 | to 18. Знак @ предотвращает вывод на экран командной строки, перед которой стоит. Я его просто для красоты воткнул. Если у тебя в начале пакетника стоит echo off, то эта собака не нужна. А чтобы сама строка "echo off" не портила смотрибельность можно поставить перед ней эту собаку. - Автор, команды, вводимые с клавиатуры и имеющие окончание выполнения, например dir, можно победить одним из следующих образов: dir>file.txt|type file.txt dir>file.txt|more file.txt dir|find/n /v "">file.txt|type file.txt dir|find/n /v "">file.txt|more file.txt dir>file.txt|find/n /v "" file.txt dir>file.txt|copy file.txt con Можно засунуть это в макрос DOSKey, назвав его, например, log. А потом, при запуске команды, дописывать имя макроса перед командой. Например log dir Но сдаётся мне, что для твоего случая это не подойдёт, поэтому хотелось-бы повторить то, что происходит у тебя.
Хочу все знать 20 - 01.07.2004 - 10:17 | ОС - OS/2 Она позволяет работать с bat и cmd файлами. Из коммандной строки стартует у нас почтовый сервер, который выводит всю инфу на экран в текстовом виде. Хотелось бы сделать, что бы они еще и писал это все в файл.
Хочу все знать 21 - 01.07.2004 - 10:39 | Все, снимаю свой вопрос. RTFM - мать их :-( (а я не любли читать)
Boroda 22 - 01.07.2004 - 10:47 | <RTFM - мать их> Угу, классная штука. У меня в Миранде настройки есть, позволяющие писать отладочную информацию в консоль (но это не cmd), в файл или и туда и туда. :-)
Boroda 23 - 01.07.2004 - 10:52 | k 22. P. S.: В случае с Мирандой логгер встроен в сам miranda32.exe и никакие ухищрения (в т. ч. и при запуске cmd в той-же консоли) не позволяют логгировать эту инфу в обход встроеного логгера. :-)

>>