2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Актуальность null
Сообщение17.05.2018, 20:37 


03/06/12
2745
Здравствуйте! Так, просто интересно. Вот здесь прочитал, что это добавление к команде делает выполнение батника скрытым. Вот здесь и еще в нескольких местах прочитал, что означает скрытое выполнение батника. Попробовал такой батник:
Код:
cd /d %0\..
copy proba.doc D: :>null

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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение17.05.2018, 20:52 
Заслуженный участник


16/02/13
4105
Владивосток
Охота изучать язык .bat/.cmd файлов — чтите документацию, а не коряво писаные инструкции по вирусописанию.

 Профиль  
                  
 
 Re: Актуальность null
Сообщение17.05.2018, 21:05 
Заслуженный участник


27/04/09
28128
Если нужно, чтобы в консоль не выводилось, какие строки выполняются, напишите в начале @echo off. Если нужно, чтобы и консоль не показывалась, это из самого скрипта, как понимаю, не сделать. Можно сделать, чтобы запускаемые им консольные программы запускались со скрытым окном — это уже какой-то параметр команды start должен быть.

 Профиль  
                  
 
 Re: Актуальность null
Сообщение17.05.2018, 21:08 
Заслуженный участник


04/05/09
4582
На винде null называется nul.

 Профиль  
                  
 
 Re: Актуальность null
Сообщение17.05.2018, 21:09 
Заслуженный участник


20/08/14
11071
Россия, Москва
Ага, и читайте, и чтите. :)
Ну и использовать D: без указания пути не стоит если только вы сами не поменяли текущую папку на диске D буквально вот только что. Иначе мало ли в какую папку файл попадёт ...

-- 17.05.2018, 21:13 --

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

-- 17.05.2018, 21:15 --

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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение17.05.2018, 21:20 


03/06/12
2745
iifat в сообщении #1312972 писал(а):
чтите документацию

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

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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение17.05.2018, 22:26 
Заслуженный участник


04/05/09
4582
Sinoid в сообщении #1312980 писал(а):
venco в сообщении #1312976 писал(а):
На винде null называется nul.

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

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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение17.05.2018, 23:12 
Заслуженный участник


20/08/14
11071
Россия, Москва
Sinoid в сообщении #1312980 писал(а):
Смотрел вот тут, ничего подходящего.
Подходящего для чего? Вы уж объясните.
Sinoid в сообщении #1312980 писал(а):
Попробовал и с \ , и без него.
Слеш тут вообще никаким боком.
Вы уж не путайте названия устройств в Linux и Windows.

 Профиль  
                  
 
 Re: Актуальность null
Сообщение18.05.2018, 10:44 


03/06/12
2745
Dmitriy40 в сообщении #1313010 писал(а):
Подходящего для чего? Вы уж объясните.

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

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

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

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

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

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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение18.05.2018, 11:54 
Заслуженный участник


01/06/15
1149
С.-Петербург
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 


05/09/16
11469
Sinoid в сообщении #1313154 писал(а):
А зачем делать перенаправление вывода, чтобы его (вывод) подавлять?

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

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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение18.05.2018, 12:04 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение18.05.2018, 14:11 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение18.05.2018, 17:31 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Актуальность null
Сообщение18.05.2018, 18:15 
Заслуженный участник


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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group