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ą start
polecenia .
Czy jest jakiś sposób na uruchomienie takiego pliku wykonywalnego, który nie ma rozszerzenia exe?
windows
command-line
rsk82
źródło
źródło
Odpowiedzi:
Tak - zwykle wystarczy wpisać pełną nazwę pliku programu. (
.exe
Wymaganie 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ę
MyProgram
do pracy, aby zmienić jego nazwęMyProgram.notexe
alboMyProgram.lol
i spróbuj ponownie).źródło
.exe
na.zip
, próbowałem otworzyć go za pomocą cmd.exe i nadal uruchomiłem samorozpakowujący się zamiast otwierać program WinZip.MZ
zostanie wykonane przez cmd, sprawdź poniżejKażdy plik z dowolnym rozszerzeniem i pierwszymi dwoma bajtami
MZ
będzie traktowany jak plik EXE.Spróbuj wykonać następujące czynności:
a.txt
plik,MZ
, zapisz.cmd
, przejdź do jego folderu,a.txt
i zobacz komunikat o błędzie.Wymień
MZ
sięMS
i spróbuj jeszcze raz - tym razem notatnik będzie działał z pliku otwartego.źródło
'' is not recognized as an internal or external command, operable program or batch file.
błądThis 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'file' is not recognized
błędu.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:
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:
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.
źródło