jak uruchomić plik wykonywalny bez rozszerzenia EXE za pomocą skryptu CMD?

19

Sytuacja jest taka, że ​​mam przenośną aplikację, która musi mieć ustawioną zmienną środowiskową. W inny sposób próbuje ustawić swoje ustawienia w danych programu użytkownika reż.

Aby uniknąć uruchamiania pliku wykonywalnego w trybie nieprzenośnym (aby uniknąć możliwości uruchamiania go bez żadnych parametrów) usunąłem rozszerzenie pliku .exe, ale potem nie mogę uruchomić go nie tylko za pomocą myszy (co chcę), ale także za pomocą startpolecenia .

Czy jest jakiś sposób na uruchomienie takiego pliku wykonywalnego, który nie ma rozszerzenia exe?

rsk82
źródło
Twoje pytanie nie jest do końca jasne. Jeśli przypadkowo usunąłeś rozszerzenie .EXE, dlaczego nie możesz go dodać z powrotem? Co ci to przeszkadza?
Karan
Usunąłem go celowo, aby nie przypadkowo go trafić, aby program działał bez żadnych parametrów. Chcę być bezpieczny, aby uruchomić program tylko z opcjami na początku.
rsk82

Odpowiedzi:

14

Tak - zwykle wystarczy wpisać pełną nazwę pliku programu. ( .exeWymaganie istnieje tylko w powłoce GUI.)

(To może być to, że plik musi się rozszerzenie, choć - tak, jeśli nie można dostać się MyProgramdo pracy, aby zmienić jego nazwę MyProgram.notexealbo MyProgram.loli spróbuj ponownie).

użytkownik1686
źródło
1
Zaskoczyło mnie to raz, gdy zmieniłem nazwę samorozpakowującego się pliku Zip .exena .zip, próbowałem otworzyć go za pomocą cmd.exe i nadal uruchomiłem samorozpakowujący się zamiast otwierać program WinZip.
user1686
Nie znałem sztuczki związanej ze zmianą rozszerzenia, ten program może wymagać jakiegoś fałszywego, to nie jest takie intuicyjne. Ale tak czy inaczej napotkałem inny błąd, czyli sama aplikacja potrzebuje głównego pliku wykonywalnego, aby mieć ścisłą nazwę.
rsk82
1
Wszystko, co zaczyna się od, MZzostanie wykonane przez cmd, sprawdź poniżej
Петър Петров
17

Każdy plik z dowolnym rozszerzeniem i pierwszymi dwoma bajtami MZbędzie traktowany jak plik EXE.

Spróbuj wykonać następujące czynności:

  1. Utwórz nowy a.txtplik,
  2. Wpisz go MZ, zapisz.
  3. Otwórz cmd, przejdź do jego folderu,
  4. Wpisz a.txti zobacz komunikat o błędzie.

Wymień MZsię MSi spróbuj jeszcze raz - tym razem notatnik będzie działał z pliku otwartego.

Петър Петров
źródło
1
Nie działa w systemie Windows 10. Zawsze pokazuje '' is not recognized as an internal or external command, operable program or batch file.błąd
phuclv
Właśnie próbowałem w domu z Windows 10 Pro i rzeczywiście pokazuje błąd, This version of D:\test.txt is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.poprzednio korzystałem z Windows 10 LTSB w pracy i to nie działało
phuclv
Nadal działa na moim systemie Windows 10 X64, ten sam przykład jak powyżej.
Петър Петров
Próba wykonania pliku bez rozszerzenia spowoduje zgłoszenie 'file' is not recognizedbłędu.
Stevoisiak
2

Próbowałem uruchomić proces z pliku bez rozszerzenia .exe. Kiedy nie udało mi się to z cmd.exe, wypróbowałem kilka poleceń PowerShell. Tutaj jest jeden:

Rozpocznij proces

Dokumentacja mówi o domyślnej składni i UseShellExecute. Z tylko:

Start-Process -FilePath .\my-program -Wait -NoNewWindow

polecenie używa składni UseShellExecute i zwraca błąd dotyczący niepowiązanej aplikacji do tego typu pliku. Aby wymusić domyślną składnię, dodałem parametr, którego nie ma UseShellExecute:

Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow

Mój program został uruchomiony i zapisał dane wyjściowe na konsoli. To mi wystarczyło, ponieważ potrzebowałem go tylko do celów testowych.

Sarrus
źródło