PDA

Просмотр полной версии : Нужен совет по командной строке Win



Hedin
07.12.2006, 11:04
Задача:
Нужно из всей сети выбрать машины, которые начинаются на "xyz" и сохранить список в виде:


xyzhost1
xyzhost2
xyzhost3

Для этого желательно использовать стандартную командную строку Windows.
Я дошел до выборки и сохранения списка в виде:


\\xyzhost1
\\xyzhost2
\\xyzhost3

Но мне нужно избавиться от "\\" перед именами и желательно от коментов, если они добавлены в описание машины, например если будет запись вида:


\\xyzhostname some description

То опять же хотелось бы оставить только имя хоста.
Блин, ну не нашел я как стандартными средствами командной строки винды редактировать строки :(

Ull9
07.12.2006, 11:08
у уникса есть awk или sed, а у винды нет? у меня на машине есть, но не уверен стандарт ли это.
или перл тебе поможет.

Hedin
07.12.2006, 13:55
Ok, я разобрался с одним, но встал вопрос другой:
почему команда

for /F "eol=;delims=\\" %i in ('net view') do (echo %i | find /i "xyz" >> hostlist.txt)
работат если запустить из командной строки и не работает, если из .bat файла?

Hedin
07.12.2006, 15:16
Расправился ужо.. можно закрывать тему.

cTcangel
07.12.2006, 22:11
а рассказать фсем?

Hedin
08.12.2006, 09:41
а рассказать фсем?
Ну собсно вот:


@echo off
del tmp.txt
del slist.txt
rem смотрим сетку на предмет нужных машин и отрезаем "\\" от названия
for /F "delims=\\" %%i in ('net view') do (echo %%i | find /i "xyz" >> tmp.txt)
rem отрезаем все, кроме названия (если был добавлен коммент к машине)
for /F %%i in (tmp.txt) do (echo %%i >> slist.txt)