|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск и отображение содержимого файла |
|
|
CMD/BAT - [решено] Поиск и отображение содержимого файла
|
Новый участник Сообщения: 11 |
Ребят, мне нужно написать пакетный файл, предназначенный для организации процесса поиска и отображения текстового файла. Поиск осуществляется по всем локальным дискам. Имя текстового файла задается пакетным параметром. После того как необходимый файл найден,в автоматическом режиме осуществляется его отображение в текстовом процессоре Блокнот.
Поддержите пожалуйста ![]() |
|
Отправлено: 19:37, 08-03-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Например, так:
@echo off setlocal enableextensions enabledelayedexpansion set sName=%~1 if not defined sName echo Usage: %~nx0 ^<filename^>& exit /b 1 for /f "usebackq skip=1" %%i in ( `wmic.exe LogicalDisk WHERE "DriveType='3'" GET Caption` ) do ( for /f "tokens=*" %%j in ( 'dir /b /s /a:-d "%%i\%sName%"' ) do start "" "%systemroot%\System32\notepad.exe" "%%j" ) endlocal exit /b 0 |
Отправлено: 20:45, 08-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Спасибо за ответ. Попробовал, командная строка открывается и тут же закрывается, где то паузы не хватает мб?
|
Отправлено: 22:26, 08-03-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата:
ConMan, попробуйте для начала отдельно выполнить там же это: Что видите? |
|
Отправлено: 22:46, 08-03-2011 | #4 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Всё, работает, премного благодарю
![]() |
|
Отправлено: 22:52, 08-03-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать ConMan, возможно, Вы до этого ни разу не запускали «wmic.exe» — при первом запуске она выдаёт несколько больше информации, чем требовалось.
|
Отправлено: 23:04, 08-03-2011 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Из письма в ПМ:
Цитата ConMan:
Проверяем, был ли вызван пакетный файл с аргументом или без. Для этого: 1. Присваиваем переменной окружения «sName» первый аргумент пакетного файла: Если пакетный файл был вызван без аргумента (т.е. «%~1» — пусто), то команда, наоборот, удалит переменную «sName». 2. Теперь проверяем, определена ли переменная окружения «sName»: И, если — нет, выводим сообщение об использовании пакетного файла и завершаем его работу: «%~nx0» — расширяет стандартную переменную окружения «%0» (имя пакетного файла) до имени («n») и расширения («x») (читаем справку «call /?»). Символы перенаправления «<» и «>» для вывода экранируем с помощью «^». for /f "usebackq skip=1" %%i in ( `wmic.exe LogicalDisk WHERE "DriveType='3'" GET Caption` ) do … разбор которой мы делаем с помощью «for /f». В команде «wmic.exe» используются как одинарные, так и двойные кавычки. Посему используем новую семантику обработки строки: «usebackq», а саму команду заключаем в обратные кавычки. Строка заголовка «Caption» нам не нужна — отсекаем её («skip=1»). Получившиеся буквы дисков используем дальше как «%%i» в: Здесь мы просто запускаем рекурсивный («/s») поиск («dir») файла («%sName%») для каждой из найденных выше букв разделов («%%i»), отсекая при этом папки («/a:-d») и оставляя в выводе только полный путь к файлу («/b»). Далее мы запускаем Блокнот для каждого из найденных файлов: Кавычки «""», указанные сразу после «start» — это пустая строка заголовка. Если не указать здесь пустые кавычки, то команда «start» воспримет в качестве заголовка строку «"%systemroot%\System32\notepad.exe"». Подробности, как обычно, в «start /?». Примерно так. P.S. Подобные вопросы следует задавать непосредственно в теме, ибо: * ответ в любом случае появится там же, поскольку ограничение на размер письма в ПМ не позволяет ответить иначе, нежели в теме; * задавая вопрос не на форуме, а одному человеку в ПМ, Вы резко сокращаете аудиторию, которая могла бы дать Вам ответ. Помимо Iska на форуме более чем достаточно участников, могущих и умеющих помочь. P.P.S. Цитата ConMan:
![]() |
||
Последний раз редактировалось Iska, 17-03-2011 в 17:53. Отправлено: 17:46, 17-03-2011 | #7 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать !!!!! Спасибо, добрый человек
![]() |
Отправлено: 21:15, 17-03-2011 | #8 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать еще раз здравствуйте,у меня попалось точно такое же задание,но после использования батника,он выдает
И, если — нет, выводим сообщение об использовании пакетного файла и завершаем его работу: Код: …echo Usage: %~nx0 ^<filename^>& exit /b 1 как сделать что бы он определял переменную окружения??? |
Отправлено: 11:42, 06-10-2011 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать apostroff, нет нужды дублировать свои посты сообщением в личку.
Ваш вопрос не понятен. Начните с формулировки: Цитата apostroff:
Цитата apostroff:
|
||
Отправлено: 12:40, 06-10-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск и изменение содержимого в INI файле | avb_trader | Скриптовые языки администрирования Windows | 6 | 11-10-2010 08:20 | |
CMD/BAT - [решено] Поиск каталога и копирование всего его содержимого | desk | Скриптовые языки администрирования Windows | 4 | 01-07-2009 14:28 | |
Уменьшение объема содержимого iso файла. | borison | Хочу все знать | 6 | 11-07-2008 09:11 | |
Востановление содержимого word файла | frodo17 | Хочу все знать | 2 | 25-08-2007 15:50 | |
изменение содержимого файла | slaine | Вебмастеру | 2 | 21-08-2005 18:30 |
|