web-dev-qa-db-ja.com

バッチファイル-ランダム化された名前で.exeファイルを実行するにはどうすればよいですか?

ダウンロードした後、バッチファイルに.exeファイルを実行させようとしています。問題は、ダウンロードされたファイルの名前がダウンロード時にランダム化されることです(ダウンロード元のWebページからランダム化されます)。ファイルの名前を推測する方法がないので、名前に関係なく、バッチファイルで.exeファイルを実行する必要があります。

私はそれが欲しい:

1:ファイルをダウンロードします-これは完全に実行されます。

2:次に、名前に関係なく.exeファイルを実行します。これは意図したとおりに機能しません。 (エラー; Windowsは '* .exe'を見つけることができません。名前を正しく入力したことを確認してから、再試行してください)-質問のマッシュアップからWebで提供されているいくつかの解決策を試しましたが、何も機能しません。

3:ファイルを削除します-これは完全に実行されます。

これは私がこれまでに得たものです:

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

助言がありますか?

1
H4yw1r3_88

これは、forfilesを使用して実現できます。

Forfilesはファイルを検索し、コマンドを実行して、見つかったファイルを変数として使用するか、いくつかのチェックを行うことができます。 Forfilesはファイルマスクをサポートしており、フォルダー内のファイルはexefileのみであると説明した場合、forfilesを使用できます。

スクリプトは次のようになります。

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
0
LPChip

aria2 を使用してそのファイルをダウンロードします。次に、それを実行します。このバッチスクリプトを使用します。

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
0
Biswapriyo