Situasinya adalah bahwa saya memiliki aplikasi portabel yang perlu mengatur variabel lingkungan. Cara lain ia mencoba untuk mengatur pengaturannya di dir data program pengguna.
Untuk menghindari menjalankan executable dalam mode non-portable (untuk menghindari membiarkannya berjalan tanpa parameter) Saya menghapus ekstensi file ".exe", tetapi kemudian saya tidak dapat menjalankannya tidak hanya dengan mouse (yang saya inginkan) tetapi juga melalui start
perintah .
Apakah ada cara untuk menjalankan file yang dapat dieksekusi tersebut yang tidak memiliki ekstensi exe?
windows
command-line
rsk82
sumber
sumber
Jawaban:
Ya - cukup memasukkan nama file lengkap program biasanya berhasil. (
.exe
Persyaratan hanya ada di shell GUI.)(Ini mungkin bahwa file tersebut perlu sebuah ekstensi, meskipun - jadi jika Anda tidak bisa mendapatkan
MyProgram
untuk menjalankan, mengganti nama keMyProgram.notexe
atauMyProgram.lol
dan coba lagi.)sumber
.exe
ke.zip
, mencoba membukanya melalui cmd.exe, dan masih berlari diri extractor bukan membuka WinZip.MZ
akan dieksekusi oleh cmd, periksa di bawah iniFile apa pun dengan ekstensi apa pun dan dua byte pertama
MZ
akan diperlakukan seperti EXE.Coba ikuti:
a.txt
file baru ,MZ
, simpan.cmd
, buka foldernya,a.txt
dan lihat pesan kesalahan.Ganti
MZ
denganMS
dan coba lagi - notepad kali ini akan berjalan dengan file dibuka.sumber
'' is not recognized as an internal or external command, operable program or batch file.
kesalahanThis 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.
sebelumnya saya menggunakan Windows 10 LTSB di tempat kerja dan itu tidak berhasil'file' is not recognized
kesalahan.Saya mencoba menjalankan proses dari file tanpa ekstensi .exe. Ketika saya gagal melakukannya dari cmd.exe saya coba beberapa perintah PowerShell. Ini satu:
Mulai-Proses
Dokumentasi mengatakan tentang sintaks Default dan UseShellExecute. Hanya dengan:
perintah menggunakan sintaks UseShellExecute dan mengembalikan kesalahan tentang aplikasi yang tidak terkait dengan tipe file itu. Untuk memaksa sintaks Default, saya menambahkan parameter yang tidak dimiliki UseShellExecute:
Program saya dimulai dan menulis keluaran ke konsol. Ini cukup bagi saya, karena saya hanya membutuhkannya untuk tujuan pengujian.
sumber