特定のディレクトリにあるすべてのファイルを一覧表示するバットファイルを作成し、リストされた各アイテムの先頭に番号を追加したいとします。この番号は選択可能なオプションである必要があります。選択肢のあるファイルリストを作成する方法
例: 5つのファイル、aaa.exe、bbb.exe、ccc.exe、ddd.exe、eee.exeがあるフォルダがあります。私はbatファイルを実行すると、私は、Enterキーを押しますと、その第五exeファイルが開始しますよりも、だから今、私は5を押す必要が5日exeファイルを実行するワナ場合
- aaa.exe
- bbb.exe
- ccc.exe
- ddd.exe
- eee.exe
を確認する必要があります。
私はこのコード
REM -start "c:\windows\system32" notepad.exe
for /r %%i in (*) do echo %%i
pause
exit
でフォルダ内のすべてのアイテムを一覧表示する方法を見つけるallredyが、私は、テキストの前に番号を追加し、数字が選択可能にすることを作成する方法を見つけ出すことはできませんオプション。
編集---
は、今私は二度目のこのループを実行しようとしているとき
ERROR: Duplicate choices are not allowed. running '""' is not recognized as an internal or external command, operable program or batch file.
なってイム。
これは私が書いたコードです:
@ECHO OFF
setlocal enabledelayedexpansion
REM ---Prompt part
:choise
SET /P AREYOUSURE=Install programs (Y/[N])?
IF /I "%AREYOUSURE%" EQU "Y" GOTO :chooseInstall
IF /I "%AREYOUSURE%" EQU "N" GOTO :nope
REM --Cheking for Y or N
GOTO :choise
:nope
echo "Ok. Have a nice daty/night"
pause
exit
:chooseInstall
echo Wich program do you wana install ?
echo.
echo 1. 7Zip
echo 2. CPU Z
echo.
SET /P AREYOUSURE=Choosing:
IF /I "%AREYOUSURE%" EQU "1" set "pathToSoft=C:\Users\usr\Desktop\hello"
IF /I "%AREYOUSURE%" EQU "2" set "pathToSoft=C:\Users\usr\Desktop\bye"
echo.
echo.
echo %pathToSoft%
echo.
echo.
REM ---Installs
echo "Wich file to install"
cd %pathToSoft%
echo.
echo.
REM --Loops that scan files
set /A counter=0
for /R %%i in (*) do (
if not "%%~nxi" == "%~nx0" (
set /A counter+=1
echo !counter!: %%~nxi
set exe[!counter!]=%%i
set choice=!choice!!counter!
)
)
if %counter% LSS 10 (
choice /C %choice% /M "Choose: "
set EXENUM=!ERRORLEVEL!
) else set /P EXENUM="enter exe number: "
set EXECUTABLE=!exe[%EXENUM%]!
echo running %EXECUTABLE%
call "%EXECUTABLE%"
echo.
echo.
echo.
:installmore
SET /P INSTALLMORE=Do you wana install somthing else (Y/[N])?
IF /I "%INSTALLMORE%" EQU "Y" GOTO :chooseInstall
IF /I "%INSTALLMORE%" EQU "N" GOTO :nope
は配列を利用するために殴られ...グレート答えを得ました。私はそれについて考え、バッチでそれをどうするかわからないという結論に達しました。クイックメモ: 'choice'はすぐに入力された入力を受け取り、Returnを待つことはありません。 – geisterfurz007
Thanxが割り当てられます。今のところ完璧に動作します! 私はこの行にわずかな変更を加えました: "/ R %% i for(* .exe)do(" .exeを削除してすべてがmagickのように動作し始めます) もう一度ありがとうございました:) – ZzozZ
実際には配列ではありません。角括弧で囲まれた名前です。しかし、この錯覚はほぼ完璧です。 –