Главная
Форумы
Новые сообщения
Поиск сообщений
Что нового?
Новые сообщения
Новые ресурсы
Последняя активность
Ресурсы
Последние отзывы
Поиск ресурсов
Помощь форуму
ЧатTG
Вход
Регистрация
Что нового?
Поиск
Поиск
Искать только в заголовках
От:
Новые сообщения
Поиск сообщений
Меню
Вход
Регистрация
Приложение
Установить
Форумы
Форум программистов
Пакетные файлы CMD, BAT
Поиск файла и возможность выбора из нескольких найденных
JavaScript отключён. Чтобы полноценно использовать наш сайт, включите JavaScript в своём браузере.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать
другой
.
Ответить в теме
Сообщение
[QUOTE="alex_diablo, post: 211118, member: 10613"] большое спасибо! реализовано все, что нужно! все работает отлично! в продолжении темы... есть похожая задача, вернее, она предшествует скрипту выше: Итак: прежде, чем выполнить скрипт по поиску нужной версии программы, нужно определиться, на какой комп (ы) будем ее устанавливать. Для этого через net view выполняем поиск всех хостов. У нас на всех компах в сети присутствует описание компа (имя и фамилия пользователя), поэтому поиск можно осуществлять по фио. все хосты вида подразделение-первая буква имени и фамилия: msk-aivanov msk-bpetrov все имена хостов - не длиннее 15 символов, т.е. если по шаблону не получается уместить полностью фио и уложиться в 15 символов, просто обрезаем конец фамилии, либо что-то подобное: msk-dpervoproh (в описании напротив хоста будет: dmitry pervoprohodcev) итак, для поиска хоста мы можем забить либо часть фио, которая будет частью хоста, либо ввести полностью: dmitry pervoprohodcev далее скрипт должен в файле найти нужный хост и записать его в переменную (для дальнейшей работы с ним при использовании скрипта для установки выше) проблема в том, что у некоторых юзеров может быть 1, 2 или даже 3 компа (ноута), хосты у них будут немного отличаться (буква, цифра и тд.), а описание будет одинаковое (фио) поэтому нужна возможность выбора в случае чего. ниже мой кривой :) код: [code=batch]@echo off rem ищем все хосты и записываем в файл. net.exe view > host1.txt setlocal :1 cls echo. echo. set /p name=" >> Enter the name of user: " rem в списке всех найденных хостов находим нужный и записываем в другой файл findstr /i /c:"%name%" host1.txt > host2.txt rem тут проверяем, найден ли какой-либо хост по шаблону поиска if %errorlevel%==1 goto 2 rem если хост найден не один, считаем количество найденных хостов и в еще один файл записываем цифру, равную количеству строк find /c /v "" <"host2.txt" >string.txt set /p string="" <string.txt rem если строка 1 rem если хост один, идем на шаг 3 if %string%==1 goto 3 cls echo. echo More then one HOST was founded: echo. echo. rem выводим список всех найденных (похожих хостов) type host2.txt echo. echo. echo 1 Type HOST manually echo 2 Back to the main menu echo 3 Exit echo. echo. choice /C:123 /m "choose your action:" if errorlevel 3 goto exit if errorlevel 2 goto 1 if errorlevel 1 goto a :a cls echo. echo. type host2.txt echo. echo. rem смотрим список найденных хостов выше и вводим нужный set /p host=" >> type hostname manually: " rem на всякий случай, проверяем доступность хоста (вдруг внезапно выключили комп))) ping %host% | find /i "ttl" if %errorlevel%==1 goto 2 rem если хост найден, записываем его (тот самый хост, который нужен. в дальнейшем, psexec будет подставлять этот файл для установки софта на комп, который указан в этом файле) echo %host% > hosts_exist.txt goto exit :2 echo host for %name% not found. Try to type the name again. echo. endlocal choice /C:12 /m "> choose your action:" if errorlevel 2 goto exit if errorlevel 1 goto 1 :3 cls set /p host="" <host2.txt rem обрезаем все лишнее (убираем \\ и описание компа. оставляем только 15 символов) set host=%host:~2,15% ping %host% | find /i "ttl" if %errorlevel%==1 goto 2 echo %host% > hosts_exist.txt echo. echo. echo host %host% is ready. echo. choice /C:12 /m "> choose your action:" echo. endlocal if errorlevel 2 goto exit if errorlevel 1 goto 1 :exit del host1.txt del hosts_exist.txt del host2.txt del string.txt[/code] только не кидайте сразу шапками пожалуйста)) согласен, скрипт УГ и сделан на коленке) увы, пока еще только начинаю этим заниматься и с циклами пока что очень плохо получается (но начальство ставит задачи, которые нужно каким-то образом выполнять). поэтому буду признателен за помощь в оптимизации кода, возможно на примере предыдущего скрипта, как я понимаю, ситуация здесь примерно похожа? только ищем мы не пути файлов, а строки с хостами... [/QUOTE]
Вставить цитаты...
Проверка
Ответить
Форумы
Форум программистов
Пакетные файлы CMD, BAT
Поиск файла и возможность выбора из нескольких найденных
Сверху
Снизу