File batch - Bagaimana cara saya menjalankan file .exe dengan nama acak?

1

Saya mencoba membuat file batch menjalankan file .exe setelah saya mengunduhnya. Masalahnya adalah, nama file yang diunduh secara acak setelah diunduh (melakukannya dari halaman web tempat ia diunduh). Saya tidak memiliki cara menebak nama file, jadi saya ingin file batch untuk menjalankan file .exe terlepas dari apa nama itu.

Saya ingin:

1: unduh file - yang tidak sempurna.

2: kemudian jalankan file .exe terlepas dari namanya - yang tidak berfungsi sebagaimana dimaksud. (Kesalahan; Windows tidak dapat menemukan '* .exe'. Pastikan Anda mengetikkan nama dengan benar, lalu coba lagi) - Saya telah mencoba beberapa solusi yang disediakan di web dari kumpulan pertanyaan - tidak ada yang berhasil.

3: hapus file - yang dilakukan dengan sempurna.

Inilah yang saya dapatkan sejauh ini:

echo Downloading file...
start "" https://TheWebPagesName.com
PING localhost -n 10 >NUL
echo Running file...
start "C:\Users\MyUsername\OneDrive\Dokumenter\Foldername\*.exe"
PING localhost -n 10 >NUL
echo Deleting File...
del "C:\Users\MyUsername\OneDrive\Dokumenter\Foldername\*.exe"
PING localhost -n 2 >NUL
echo Done!
PING localhost -n 6 >NUL
echo Exiting...
PING localhost -n 4 >NUL

Ada saran?

H4yw1r3_88
sumber
Apakah Anda memiliki kendali atas ke mana file itu diunduh? Direktori apa?
LPChip
Iya. Itu diunduh ke "C: \ Users \ MyUsername \ OneDrive \ Dokumenter \ Foldername" Ini juga file .exe HANYA dalam direktori itu, dalam kasus yang membuat perbedaan.
H4yw1r3_88
Ya itu memang membuat perbedaan, karena dengan begitu Anda dapat mencarinya menggunakan forfile atau untuk, dan menyimpan hasilnya dalam sebuah variabel. Saya tidak punya waktu untuk menulis jawaban kepada Anda sekarang, tetapi dengan informasi ini, orang lain akan dapat melakukannya.
LPChip
Jika Anda ingin membuatnya sendiri, buka command prompt dan ketik forfiles / ?. tidak terlalu sulit kok.
LPChip
Apakah ini bekerja ?: forfiles / p "C: \ Users \ MyUsername \ OneDrive \ Dokumenter \ Foldername" / m * .exe / c start
H4yw1r3_88

Jawaban:

0

Anda dapat melakukannya dengan menggunakan forfile.

Forfile dapat mencari file, dan kemudian menjalankan perintah dan menggunakan file yang ditemukannya sebagai variabel, atau melakukan beberapa pemeriksaan. Forfiles mendukung filemasks, dan mengingat Anda telah menjelaskan bahwa exefile adalah satu-satunya file dalam folder, forfile dapat digunakan.

Script Anda akan terlihat seperti ini:

echo Downloading file...
start "" https://TheWebPagesName.com
PING localhost -n 10 >NUL
echo Running file...

:: comment out old row for easy reading    
:: start "C:\Users\MyUsername\OneDrive\Dokumenter\Foldername\*.exe"

:: insert new comamnd instead:
forfiles /p "C:\Users\MyUsername\OneDrive\Dokumenter\Foldername" /m *.exe /c "@file"

:: if you were not using executables, but would want to use start file.txt, you would use:
::forfiles /p "C:\Users\MyUsername\OneDrive\Dokumenter\Foldername" /m *.txt /c "cmd /c @file"

PING localhost -n 10 >NUL
echo Deleting File...
del "C:\Users\MyUsername\OneDrive\Dokumenter\Foldername\*.exe"
PING localhost -n 2 >NUL
echo Done!
PING localhost -n 6 >NUL
echo Exiting...
PING localhost -n 4 >NUL
LPChip
sumber
Terima kasih! Ini bekerja dengan sempurna. Sangat dihargai! Semoga harimu menyenangkan :) Ceria!
H4yw1r3_88
0

Gunakan aria2 untuk mengunduh file itu. Kemudian jalankan. Gunakan skrip kumpulan ini:

aria2c.exe --out="FileName.exe" --check-certificate=false --dir="C:\folder\path" "download_link"
"C:\folder\path\FileName.exe"
timeout /t 10
del "C:\folder\path\FileName.exe"
pause
Biswapriyo
sumber
Terimakasih atas balasan anda! Namun, ini hanya muncul dengan "aria2c.exe 'tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch." - Namun, jawaban LPChip di atas berfungsi dengan sempurna. Terima kasih atas waktu Anda & balas, sekali lagi. Cheers - have a great day :)
H4yw1r3_88
@ H4yw1r3_88 Anda harus membuka command prompt di mana Anda mengunduh aria2 file yang dapat dieksekusi. Atau masukkan path lengkap aria2c di command prompt.
Biswapriyo