Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Организация вывода файла на экран с предварительной проверкой.

Ответить
Настройки темы
CMD/BAT - Организация вывода файла на экран с предварительной проверкой.

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Совсем не давно ознакомился с командными файлами, нужно выполнить задание:

3.1. Организовать просмотр заданного файла. (какого файла не указано, потому можно брать любой)

3.2. Предварительно следует проверить, задан ли при вызове параметр, если параметр не задан, то вывести соответствующее сообщение.

3.3. Предварительно следует проверить, существует ли указанный файл, если файл не существует, то вывести соответствующее сообщение.

Проблема в том что я понятия не имею что такое "Параметр", а в моем распоряжении лишь маленький вспомогательный лист - http://i.gyazo.com/4b609d35c2d813fefd06d663de5ec7db.png
Время поджимает, потому нет времени искать в созданных темах.

Отправлено: 20:44, 17-12-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата besgranichni@vk:
Проблема в том что я понятия не имею что такое "Параметр" »
Запустите командную строку. Наберите в ней:
Код: Выделить весь код
cd /d "c:\Windows"
и нажмите «Enter». Произойдёт смена текущего каталога на «c:\Windows».

Затем наберите:
Код: Выделить весь код
dir /b /a:-d /o:-n "*.exe"
и нажмите «Enter». В консоль будут выведены имена файлов с расширением «.exe», списком, отсортированные по алфавиту в убывающем порядке.

Так вот, здесь «cd» и «dir» — команды, а «/d», «"c:\Windows"», «/b», «/a:-d», «/o:-n» и «"*.exe"» — передаваемые им параметры. Точно так же передаются параметры в пакетный файл. В данном случае Вам нужно передать Вашему пакетному файлу один параметр, представляющий собой относительный или абсолютный путь к файлу, например:
Код: Выделить весь код
"MyBatch.cmd" "C:\WINDOWS\win.ini"
В целом сие может выглядеть примерно так:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1

if defined sSourceFile (
	if exist "%sSourceFile%" (
		more <"%sSourceFile%"
	) else (
		echo Source file [%sSourceFile%] not found.
		exit /b 2
	)
) else (
	echo Usage: %~nx0 ^<Source file^>
	exit /b 1
)

endlocal
exit /b 0

Сохраните приведённый код в файл с расширением «.cmd» (если будете использовать внутри пакетного файла кириллицу — сохраняйте в кодировке OEM/866). Вызывайте его из-под командной строки в вышеуказанном виде с параметром. Также можно просто перетянуть файл на пакетный файл в Проводнике.

Цитата besgranichni@vk:
а в моем распоряжении лишь маленький вспомогательный лист - http://i.gyazo.com/4b609d35c2d813fefd06d663de5ec7db.png »
В Вашем распоряжении документация, встроенная справка:
Скрытый текст
Код: Выделить весь код
help
call /?
echo /?
rem /?
goto /?
…

и интернет.

Отправлено: 21:19, 17-12-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Iska, Меня вгоняет в тупик само задание.
Мне нужно создать батник, при запуске которого выводятся внутренности определенного файлика, при этом нужно заранее посмотреть наличие у него параметров. Так вот суть скорее не в том что такое параметр, а как мне создать батник выводящий определенный файл, то есть я сам должен его выбирать, я не знаю как мне задать выбор определенного файла во время работы батника, разве что на ум приходит система из if'ов, в которой постоянно спрашивают "Вам нужно вывести этот файлик?(y\n)", но и в этом случае я не знаком с if'ом, и не имею представления как описать это. И все же если удастся это создать, то что же такое "параметр"?, как я уже успел найти, параметр в батнике - это что-то вида "%?", то что вы, как раз, использовали в вашем примере.
Нашел основы, что такое параметр:

Скрытый текст
Код: Выделить весь код
@echo off

rem Формируем файл с описанием команды, 
rem имя которой передано параметром
help %1 > help.tmp

rem Загружаем файл описания в редактор Блокнот
notepad help.tmp


НО! - "имя которой передано параметром", и вот тут появляется вопрос "А что же собсна находится в параметре?", это что-то задаваемое вводом с клавиатуры? Или что-то вроде переменной которую надо объявлять и присваивать ей значение?

Мне бы методичку, нормальную.. Вопросов много - нервов у людей мало с:

Отправлено: 21:53, 17-12-2014 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата besgranichni@vk:
Так вот суть скорее не в том что такое параметр, а как мне создать батник выводящий определенный файл, то есть я сам должен его выбирать, я не знаю как мне задать выбор определенного файла во время работы батника, »
Именно «в том». Вы некорректно понимаете термин «параметр». Параметр задаётся не «во время работы батника», а в момент его вызова указанием в командной строке после имени пакетного файла.

Вы приведённый выше код сохранили в пакетный файл? Имя пакетному файлу дали?

Отправлено: 22:01, 17-12-2014 | #4


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Iska, сейчас до меня стало доходить что вы не совсем правильно понимаете, что я не правильно понимаю, я думал что параметр будет проверяться у того самого "определенного файла" который мне надо будет вывести, как я сейчас понял, параметр будет задаваться в батнике, изначально. Тот код что я скинул детище не моих рук, это просто пример с одного из файлов, и привел я его только для того, чтобы показать вам с какой стороны я имею примерное понятие что такое параметр. И сейчас я конкретно не догоняю, как мне сделать проверку у батника на наличие параметров, к тому же я теперь не понимаю какой параметр мне нужно проверить, вернее.. даже не знаю как написать.. м.. Есть нечто что выглядит как "%?", а есть параметры у команд, и я не понимаю что из этого меня просят проверить и каким образом это осуществить. Надеюсь вы поняли корни моего непонимания, и если так, то не будет ли вам сложно написать программку с объяснением, что есть что, и как используется? В деле все становится намного понятнее, нежели в теории.

Отправлено: 22:17, 17-12-2014 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата besgranichni@vk:
как мне сделать проверку у батника на наличие параметров, »
Например, так, как это сделано в вышеприведённом коде:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1

if defined sSourceFile (
	if exist "%sSourceFile%" (
		more <"%sSourceFile%"
	) else (
		echo Source file [%sSourceFile%] not found.
		exit /b 2
	)
) else (
	echo Usage: %~nx0 ^<Source file^>
	exit /b 1
)

endlocal
exit /b 0
Цитата besgranichni@vk:
к тому же я теперь не понимаю какой параметр мне нужно проверить, »
Первый переданный параметр («%1») в пакетный файл.

Цитата besgranichni@vk:
вернее.. даже не знаю как написать.. м.. Есть нечто что выглядит как "%?", а есть параметры у команд, и я не понимаю что из этого меня просят проверить и каким образом это осуществить. Надеюсь вы поняли корни моего непонимания, и если так, то не будет ли вам сложно написать программку с объяснением, что есть что, и как используется? »
besgranichni@vk, с наскока мы с Вами никак не осилим, я чую. Слишком много самого элементарного вызывает у Вас вопросы. Попробуйте начать отсюда: НОУ ИНТУИТ | Учебный курс | Командная строка и сценарии Windows, вторая и третья лекции.

Отправлено: 22:53, 17-12-2014 | #6


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Iska, я смышленей чем кажусь, на свежую голову все стало куда яснее
Скрытый текст
Код: Выделить весь код
@echo off
if "%1"=="%9" (echo Parametr  ne ustanovlen.)
if "%1"=="%9" goto end
if not exist %1 (echo Fila ne suchestvuet.)
if not exist %1 (goto end)
if exist %1 (echo File suchestvuet, osuchestvlyau prosmotr.)
type %1
:end

Я еще не знаком с "set", оставлю это на вечер.
А еще вопрос от том что такое параметр у меня возникал потому, что я не понимал где производится его ввод. То есть я понимал что такое параметр в общем, но откуда он берется, если он не указан в программе, не понимал. Кодик выше сделан не совсем корректно(имеется в виду случай с 9ю одинаковыми параметрами), но все же для начала мне этого будет достаточно. С командными файлами я познакомился буквально вчера, и сфера моих знаний лежит в рамках паскаля и эмулятора 8086, спасибо за лекции. Кстати еще один вопросик, как мне совместить две команды, для одного ифа? Чтобы выводилось сообщение через echo, и сразу переходило по метке? "|" не работает.

Отправлено: 14:24, 18-12-2014 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата besgranichni@vk:
как мне совместить две команды, для одного ифа? »
Пример выше, где условие выделено красным, не наводит на размышления?

Отправлено: 14:49, 18-12-2014 | #8


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
if "%1"=="" (echo Parametr ne zadan.& goto end)
if not exist "%~1" (echo Fayla ne sushchestvuet.& goto end) else (echo Fayl sushchestvuet, osushchestvlyayu prosmotr.& type "%~1")
:end
,
или

Код: Выделить весь код
@echo off
if "%1"=="" echo Parametr ne zadan.&& goto end
if not exist "%~1" (
 echo Fayla ne sushchestvuet.
 goto end
) else (
 echo Fayl sushchestvuet, osushchestvlyayu prosmotr.
 type "%~1"
)
:end
,
или...


...Sushchestvuet eshchyo mnogo variantov zapisi takogo koda.


Esli uzh ispol'zovat' transliteratsiyu, to khot' po kakomu-nibud' standartu. besgranichni@vk, спасибо за точки в конце выводов команды "echo". Бальзам на душу: сам так делаю, так как стараюсь придерживаться лингвистических правил.

Отправлено: 16:22, 18-12-2014 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Организация вывода файла на экран с предварительной проверкой.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Батник для парсинга и вывода на экран GromfBaenre@twitter Скриптовые языки администрирования Windows 4 09-12-2014 14:48
CMD/BAT - [решено] копирование файла во все подкаталоги каталога с проверкой yanus74 Скриптовые языки администрирования Windows 2 17-08-2014 09:40
CMD/BAT - Как сделать два потока вывода в файл и на экран zamut Скриптовые языки администрирования Windows 2 27-12-2011 09:10
VBS/WSH/JS - [решено] Скрипт обновления файла с проверкой по дате изменения. CtrlD Скриптовые языки администрирования Windows 2 17-07-2010 10:45
Недостаточно системных ресуров для вывода на экран??? Eagle12 Microsoft Windows 95/98/Me (архив) 2 17-05-2004 11:44




 
Переход