ファイル名についてユーザーを満足させるバッチ スクリプトを作成する必要があります。
たとえば、ユーザーが .bat ファイルを起動し、オプション「ファイルの削除」を選択すると、スクリプトはファイル名を待機し、次にユーザーはそれを のように 1 行で書き込みますfile1.txt file2.txt file3.txt file4.txt
。
後で使用するために配列要素のようなファイル名を取得するにはどうすればよいですか?
ファイル名についてユーザーを満足させるバッチ スクリプトを作成する必要があります。
たとえば、ユーザーが .bat ファイルを起動し、オプション「ファイルの削除」を選択すると、スクリプトはファイル名を待機し、次にユーザーはそれを のように 1 行で書き込みますfile1.txt file2.txt file3.txt file4.txt
。
後で使用するために配列要素のようなファイル名を取得するにはどうすればよいですか?
setlocal EnableDelayedExpansion
:deleteFiles
set /P "filenames=Enter file names to delete: "
rem Grab filenames in an array
set n=0
for %%a in (%filenames%) do (
set /A n+=1
set "filename[!n!]=%%~a"
)
rem For example, to process the filenames:
for /L %%i in (1,1,%n%) do (
echo %%i- !filename[%%i]!
)
ファイル名のリストは、スペース (またはカンマ、またはセミコロン) で区切る必要があります。名前にスペースが含まれる場合は、引用符で囲む必要があります。
配列の詳細については、この投稿を参照してください。
なしのバージョンdelayed expansion
:
@ECHO OFF &SETLOCAL
set "filepattern=*.txt"
for /f "tokens=1*delims=:" %%a in ('dir /b /a-d "%filepattern%"^|findstr /n $') do (
set "filename[%%a]=%%~b"
)
for /f "tokens=2delims==" %%a in ('set "filename"') do (
echo "%%~a"
)