Есть ли где-нибудь в установке Windows exe-файл в стиле "noop"? Я готовлю несколько пакетных заданий и запланированных задач, и по нескольким причинам я хотел бы сослаться на исполняемый файл, который ничего не делает, то есть запускается без видимого окна и немедленно завершает работу.
Существует ли такой исполняемый файл в обычной установке Windows где-либо? или как я могу приблизиться к нему? Я не хочу зависеть от чего-либо, что еще не включено в Windows.
решение1
Вы можете использовать rundll32
:
- Нет окна консоли
- Никаких побочных эффектов.
- Всего 44 КБ
- Аргументы не требуются
- Работает на всех последних версиях Windows (XP, Vista, 7) и, вероятно, на всех системах на базе NT.
решение2
Есть ли где-нибудь в составе установки Windows exe-файл в стиле «noop»?
Имея в виду конкретно программу, которая не должна ничего делать и ничего больше? И да, и нет. Нет, в том смысле, что Windows не включает ее по умолчанию, но она включает возможность создать ее самостоятельно.
Опция 1
Бегатьблокнот.exe, введите следующие строки и сохраните их как C:\ret.scr
(не забудьте пустую строку):
a
ret
rcx
1
n ret.com
w
q
Скомпилируйте его с помощьюотладка.exeв командной строке (cmd.exe) с помощью следующей команды:
C:\> debug < ret.scr
Теперь у вас есть программа ret.com
(на C:\), которую можно использовать в пакетных файлах, и которая не делает абсолютно ничего (ну, кроме выхода, если это имеет значение).
Примечание: debug
не включен в 64-битные системы.
Вариант 2
В Vista и более поздних версиях фреймворк .NET включен по умолчанию, поэтому вы также можете создать нативное приложение для Windows, не выполняющее никаких действий, .exe
на C# (64-битная совместимость):
Бегатьблокнот.exeи введите следующие строки, сохранив их как C:\ret.cs
:
class ret
{
static void Main() {
}
}
Скомпилируйте его с помощьюcsc.exeв командной строке (cmd.exe) с помощью следующей команды:
C:\> csc ret.cs /target:winexe
Теперь у вас есть еще одна программа ret.exe
(в C:\), которую можно использовать в пакетных файлах, которые ничего не делают, кроме возврата. Параметр target делает ее приложением GUI, поэтому она даже не открывает окно терминала.
решение3
Насколько мне известно, в Windows нет программ, которые немедленно завершают работу после запуска (по крайней мере, намеренно).
Однако в Windows Vista и более новых версиях естьвремя ожидания.exeутилита. Timeout.exe
будет ждать указанное количество секунд и затем выйдет. Например:
C:\>timeout /t 0 > nul:
Установка timeout.exe
ожидания в 0 секунд — это примерно то же самое, что и EXE-файл, который немедленно завершит работу.
решение4
Я пробовал rndll32.exe
и , hh.exe
но оба раза %ERRORLEVEL% не изменился. Это переменная окружения, которая сообщает, был ли последний исполняемый файл успешным. Работает как код возврата unix.
Моя команда noop ниже установит %ERRORLEVEL% на ноль:
cd %CD%
Просто меняю рабочий каталог на текущий.