39

Есть ли где-нибудь исполняемый файл "noop" как часть установки Windows? Я готовлю несколько пакетных заданий и запланированных заданий, и по нескольким причинам я хотел бы сослаться на исполняемый файл, который ничего не делает - то есть запускается без видимого окна и немедленно завершает работу.

Существует ли такой исполняемый файл в обычной установке Windows где-нибудь? или как я могу приблизиться? Я не хочу зависеть от того, что еще не включено в Windows.

10 ответов10

44

Вы можете использовать rundll32:

  • Нет консольного окна
  • Нет побочных эффектов
  • Всего 44 кб
  • Никаких аргументов не требуется
  • Работает на всех последних версиях Windows (XP, Vista, 7) и, вероятно, на каждой системе на базе NT.
33

Есть ли где-нибудь исполняемый файл "noop" как часть установки Windows?

Имеется в виду, в частности, программа, которая предназначена для ничего и ничего больше? И да и нет. Нет, Windows не включает ни одного по умолчанию, но включает возможность создать его самостоятельно.


Опция 1

Запустите notepad.exe, введите следующие строки и сохраните его как C:\ret.scr (не забудьте пустую строку):

a
ret

rcx
1
n ret.com
w
q

Скомпилируйте его с помощью debug.exe в командной строке (cmd.exe) с помощью следующей команды:

C:\> debug < ret.scr

Теперь у вас есть программа ret.com (в C:\), которую можно использовать в пакетных файлах, которая абсолютно ничего не делает (ну, кроме выхода, если это считается).

Примечание: debug не включена в 64-битных системах.


Вариант 2

В Vista и более поздних версиях .NET Framework включена по умолчанию, так что вы также можете создать собственный, неиспользуемый Windows- .exe с C # (совместимость с 64-разрядными системами):

Запустите notepad.exe и введите следующие строки, сохранив его как C:\ret.cs:

class rte
{
   static void Main() {
   }
}

Скомпилируйте его с помощью csc.exe в командной строке (cmd.exe) с помощью следующей команды:

C:\> csc ret.cs

Теперь у вас есть другая программа, ret.exe (в C:\), которую можно использовать в пакетных файлах, которая ничего не делает, кроме как возвращает.

10

Нет никаких программ, включенных в Windows (о которых я знаю), которые сразу же завершаются при выполнении (по крайней мере, нарочно).

Однако в Windows Vista и новее есть утилита timeout.exe . Timeout.exe будет ждать указанное количество секунд и затем выходить. Например:

C:\>timeout /t 0 > nul:

Настройка timeout.exe на ожидание в течение 0 секунд примерно так же близка, как вы получите к EXE-файлу, который немедленно завершает работу.

4

Без параметров «C:\Windows\hh.exe» (исполняемый файл справки Microsoft® HTML) ничего не происходит, и я полагаю, что он включен в любую версию Windows.

2

Я пробовал rndll32.exe и hh.exe но оба не изменили% ERRORLEVEL%. Это переменная среды, которая сообщает, был ли последний исполняемый файл успешным. Работает как код возврата Unix.

Моя команда noop ниже установит% ERRORLEVEL% в ноль:

cd %CD%

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

2

wscript без аргументов вообще не запускает сценарий и является исполняемым файлом с графическим интерфейсом (не открывает консоль).

0

команда echo off ничего не делает внутри пакета (.BAT) файл. Хотя это не исполняемый файл, это внутренняя команда Windows.

0

Вы можете написать неоперативный в C, как так

void main() {

}

и скомпилируйте его в файл .exe. Например, если у вас установлена Visual Studio, вы можете открыть блокнот, вставить этот фрагмент, сохранить его как noop.c и в командной строке использовать cl noop.c и он выведет файл noop.exe в ту же папку.

Вам может понадобиться, а может и нет, сначала перейти к папке Microsoft Visual Studio X.0 в Program Files и запустить vcvarsall.bat из командной строки.

0

Скомпилируйте простую C++ программу "Hello World", чтобы создать простой exe-файл, который немедленно завершится.
Сохраните следующий код в текстовом файле с именем, например, a.cpp:

#include<iostream>
int main()
{ std::cout<<"Hello World";
return 0;
}

Затем скомпилируйте его с последним компилятором C++, таким как MinGW для Windows 7.
В случае MinGW выполните следующую команду в PowerShell или командной строке: g++ path\a.cpp (при условии, что вы установили переменную PATH среды двоичного местоположения g++ или вы находитесь в двоичном каталоге g++, т.е. по умолчанию c:\mingw\bin), После выполнения команды вы получите a.exe, который отобразит Hello World и завершит работу. Подтвердите, дважды щелкнув ... Окно cmd появится и сразу исчезнет. Доступ к командной строке отобразит Hello World и вернет вас к командной строке.
Затем вы можете переместить этот a.exe в system32 или куда-нибудь вглубь Windows. Вы даже можете развернуть его на установочном диске Windows.

-1

Хотя это не является основной целью этого инструмента, вы можете использовать параметр /donothing в WuInstall - вы также можете указать код возврата, который должен быть возвращен - см. Http://help.wuinstall.com

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .