Опция 1

Опция 1

Есть ли где-нибудь в установке 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%

Просто меняю рабочий каталог на текущий.

Связанный контент