2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3  След.
 
 Актуальность null
Сообщение17.05.2018, 20:37 
Здравствуйте! Так, просто интересно. Вот здесь прочитал, что это добавление к команде делает выполнение батника скрытым. Вот здесь и еще в нескольких местах прочитал, что означает скрытое выполнение батника. Попробовал такой батник:
Код:
cd /d %0\..
copy proba.doc D: :>null

Получил в той же папке (на диске С:, уже нечто!) файл неизвестного расширения. Или это для адресной строки?

 
 
 
 Re: Актуальность null
Сообщение17.05.2018, 20:52 
Охота изучать язык .bat/.cmd файлов — чтите документацию, а не коряво писаные инструкции по вирусописанию.

 
 
 
 Re: Актуальность null
Сообщение17.05.2018, 21:05 
Если нужно, чтобы в консоль не выводилось, какие строки выполняются, напишите в начале @echo off. Если нужно, чтобы и консоль не показывалась, это из самого скрипта, как понимаю, не сделать. Можно сделать, чтобы запускаемые им консольные программы запускались со скрытым окном — это уже какой-то параметр команды start должен быть.

 
 
 
 Re: Актуальность null
Сообщение17.05.2018, 21:08 
На винде null называется nul.

 
 
 
 Re: Актуальность null
Сообщение17.05.2018, 21:09 
Ага, и читайте, и чтите. :)
Ну и использовать D: без указания пути не стоит если только вы сами не поменяли текущую папку на диске D буквально вот только что. Иначе мало ли в какую папку файл попадёт ...

-- 17.05.2018, 21:13 --

arseniiv в сообщении #1312975 писал(а):
Если нужно, чтобы и консоль не показывалась, это из самого скрипта, как понимаю, не сделать.
Можно, хотя и через изврат: через start запустить себя же в новом отдельном скрытом окне, а этот процесс завершить. Правда я не пробовал.

-- 17.05.2018, 21:15 --

Ну а nul удобно использовать для подавления вывода служебных сообщений при перенаправлении вывода/лога в файл.

 
 
 
 Re: Актуальность null
Сообщение17.05.2018, 21:20 
iifat в сообщении #1312972 писал(а):
чтите документацию

Читал. Смотрел вот тут, ничего подходящего.
venco в сообщении #1312976 писал(а):
На винде null называется nul.

Попробовал и с \ , и без него. Окно выскакивает и ничего не копируется.

 
 
 
 Re: Актуальность null
Сообщение17.05.2018, 22:26 
Sinoid в сообщении #1312980 писал(а):
venco в сообщении #1312976 писал(а):
На винде null называется nul.

Попробовал и с \ , и без него. Окно выскакивает и ничего не копируется.
Как то, что написали вы, связано с тем, что написал я?

Ещё у вас : лишнее.

 
 
 
 Re: Актуальность null
Сообщение17.05.2018, 23:12 
Sinoid в сообщении #1312980 писал(а):
Смотрел вот тут, ничего подходящего.
Подходящего для чего? Вы уж объясните.
Sinoid в сообщении #1312980 писал(а):
Попробовал и с \ , и без него.
Слеш тут вообще никаким боком.
Вы уж не путайте названия устройств в Linux и Windows.

 
 
 
 Re: Актуальность null
Сообщение18.05.2018, 10:44 
Dmitriy40 в сообщении #1313010 писал(а):
Подходящего для чего? Вы уж объясните.

Собственно, после этого
Sinoid в сообщении #1312971 писал(а):
Вот здесь
прочитал, что это добавление к команде делает выполнение батника скрытым. Вот здесь
и еще в нескольких местах прочитал, что означает скрытое выполнение батника.

уж и не знаю, как еще объяснить. Впрочем, после этого
arseniiv в сообщении #1312975 писал(а):
Если нужно, чтобы и консоль не показывалась, это из самого скрипта, как понимаю, не сделать.

главный вопрос темы можно считать исчерпанным.
venco в сообщении #1312992 писал(а):
Как то, что написали вы, связано с тем, что написал я?

Я просто в батнике null заменил на nul.
venco в сообщении #1312992 писал(а):
Ещё у вас : лишнее.

Взято из первой ссылки первого поста этой темы.
Dmitriy40 в сообщении #1312977 писал(а):
Ну а nul удобно использовать для подавления вывода служебных сообщений при перенаправлении вывода/лога в файл.

А зачем делать перенаправление вывода, чтобы его (вывод) подавлять?

 
 
 
 Re: Актуальность null
Сообщение18.05.2018, 11:54 
Sinoid в сообщении #1312971 писал(а):
Здравствуйте! Так, просто интересно. Вот здесь прочитал, что это добавление к команде делает выполнение батника скрытым.
...
Попробовал такой батник:
Код:
cd /d %0\..
copy proba.doc D: :>null

Получил в той же папке (на диске С:, уже нечто!) файл неизвестного расширения. Или это для адресной строки?


Попробуйте ещё раз перечитать инструкции по ссылке (инструкции, конечно, так себе, с опечатками и ламерскими замечаниями). Там не сказано, что само по себе перенаправление вывода программы в устройство null (nul) делает выполнение батника скрытым. Эта команда всего лишь указывает, что не нужно ничего выводить на экран. Чтобы скрыть окно консоли там используется запускающий vb-script:
Цитата:
указываем к запуску три файла!!! наш батник который вырубает тачку, файл "null.vbs", и иконка "fuck.ico"
null.vbs создаём та же как и все вписав:

Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run"E:\батник.bat ", 0, true

для того что бы скрыто процес выполнения всего этого...

 
 
 
 Re: Актуальность null
Сообщение18.05.2018, 12:04 
Sinoid в сообщении #1313154 писал(а):
А зачем делать перенаправление вывода, чтобы его (вывод) подавлять?

На случай если вы не хотите читать этот вывод. Ну и в прошлой теме вам подробно объясняли, что вывод может идти в два потока -- стандартный stdout и ошибок stderr. Отправляя стандартный в nul, вы оставляете только вывод с ошибками.

Например вы копируете 100500 файлов из одной директории в другую. Это сопровождается 100500 строками, но вы не хотите их все видеть (например вы перед этим уже запускали команду dir и содержание папки вам известно), а хотите видеть только сообщения об ошибках. Вот тогда перенаправляете вывод в nul.

 
 
 
 Re: Актуальность null
Сообщение18.05.2018, 12:04 
Sinoid в сообщении #1313154 писал(а):
А зачем делать перенаправление вывода, чтобы его (вывод) подавлять?
Перенаправление вывода на устройство null (nul) делается для подавления вывода (чтобы на экран ничего не выводилось). Причём, как Вам писали ранее в других темах, есть несколько стандартных потоков вывода (но лучше смотреть ту же статью Википедии на английском). По умолчанию все они идут на экран консоли. Но можно каждый поток отдельно перенаправлять в файл или "в никуда" (на устройство nul). Пользуются ли программы всеми этими потоками или только основным - отдельный вопрос (к автору конкретной программы).

 
 
 
 Re: Актуальность null
Сообщение18.05.2018, 14:11 
Sinoid в сообщении #1313154 писал(а):
А зачем делать перенаправление вывода, чтобы его (вывод) подавлять?
Чтобы регулировать что именно хотите видеть (записывать в файл), а что нет. Например:
Код:
@echo off   <<< Сами команды из батника видеть не хочу
time /t   <<< Это вот хочу видеть
echo Начинаю копирование файлов ...  <<< Это вот хочу видеть
copy *.xls x:\backup_xls\ >nul  <<< А эти вот сообщения о копировании каждого файла видеть не хочу
time /t   <<< Это вот хочу видеть
echo Файлы Excel скопированы.   <<< Это вот хочу видеть

 
 
 
 Re: Актуальность null
Сообщение18.05.2018, 17:31 
На всякий случай: в линуксе (точнее, bash, про другие не знаю) кроме > есть ещё и 2> — перенаправление stderr. В Windows про такое не встречал, но почему-то работает тоже.
Dmitriy40 в сообщении #1312977 писал(а):
через start запустить себя же в новом отдельном скрытом окне
Проверяли? Долго искал, но в startе такого не нашёл (уточню: в XP/7 не нашёл). Есть сторонние утилиты для скрытого запуска и сокрытия собственного окна.

 
 
 
 Re: Актуальность null
Сообщение18.05.2018, 18:15 
iifat в сообщении #1313235 писал(а):
Проверяли? Долго искал, но в startе такого не нашёл (уточню: в XP/7 не нашёл).
Мне казалось я сразу сказал:
Dmitriy40 в сообщении #1312977 писал(а):
Правда я не пробовал.
А так, по идее, start /b именно это и делает, в xp/win7 параметр есть.

А про 2> уже не однажды сказали, и в доке оно есть (ссылка есть в предыдущей теме ТС - post1310950.html#p1310950).

 
 
 [ Сообщений: 33 ]  На страницу 1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group