Die Situation ist, dass ich eine tragbare Anwendung habe, die Umgebungsvariable gesetzt haben muss. Andernfalls wird versucht, die Einstellungen im Datenverzeichnis des Benutzerprogramms festzulegen.
Um zu vermeiden, dass die ausführbare Datei im nicht portierbaren Modus ausgeführt wird (um zu vermeiden, dass sie ohne Parameter ausgeführt wird), habe ich die Dateierweiterung ".exe" gelöscht, kann sie dann aber nicht nur mit der Maus (was ich will), sondern auch über einen start
Befehl ausführen .
Gibt es eine Möglichkeit, eine solche ausführbare Datei ohne Exe-Erweiterung auszuführen?
windows
command-line
rsk82
quelle
quelle
Antworten:
Ja - die einfache Eingabe des vollständigen Dateinamens des Programms funktioniert normalerweise. (Die
.exe
Anforderung existiert nur in der GUI-Shell.)(Es kann jedoch sein, dass die Datei eine Erweiterung benötigt. Wenn Sie sie nicht
MyProgram
ausführen können, benennen Sie sie inMyProgram.notexe
oder umMyProgram.lol
und versuchen Sie es erneut.)quelle
.exe
zu.zip
, versuchte , es durch cmd.exe zu öffnen, und es immer noch lief den Self-Extractor statt WinZip zu öffnen.MZ
durch cmd ausgeführt werden, unter überprüfenJede Datei mit einer beliebigen Erweiterung und den ersten beiden Bytes
MZ
wird wie eine EXE- Datei behandelt.Versuchen Sie Folgendes:
a.txt
Datei,MZ
, speichern Sie es.cmd
, gehen Sie zu seinem Ordner,a.txt
und sieh die Fehlermeldung.Ersetzen
MZ
durchMS
und versuchen Sie es erneut - diesmal wird der Editor mit geöffneter Datei ausgeführt.quelle
'' is not recognized as an internal or external command, operable program or batch file.
FehlerThis 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.
ich zuvor bei der Arbeit mit Windows 10 LTSB gemacht habe und der nicht funktioniert hat'file' is not recognized
Fehler ausgegeben.Ich habe versucht, einen Prozess aus einer Datei ohne die Erweiterung .exe auszuführen. Wenn ich es nicht über cmd.exe geschafft habe, probiere ich einige Powershell-Befehle aus. Hier ist eine:
Start-Prozess
Die Dokumentation enthält Informationen zu Standardsyntax und UseShellExecute. Nur mit:
Der Befehl verwendet die UseShellExecute-Syntax und gibt einen Fehler über eine nicht diesem Dateityp zugeordnete Anwendung zurück. Um die Standardsyntax zu erzwingen, habe ich einen Parameter hinzugefügt, den UseShellExecute nicht hat:
Mein Programm wurde gestartet und an die Konsole ausgegeben. Das hat mir gereicht, weil ich es nur zu Testzwecken brauchte.
quelle