指定したフォルダのテキストファイル名をすべて一覧表示し、配列から格納して取得する必要があるバッチファイルを作成します。バッチファイルで可能ですか?テストファイルを表示する現在のコードは次のとおりです。バッチファイル:ディレクトリからファイル名を読み込み、配列に格納
dir *.txt /b
何か助けに感謝します。
指定したフォルダのテキストファイル名をすべて一覧表示し、配列から格納して取得する必要があるバッチファイルを作成します。バッチファイルで可能ですか?テストファイルを表示する現在のコードは次のとおりです。バッチファイル:ディレクトリからファイル名を読み込み、配列に格納
dir *.txt /b
何か助けに感謝します。
"Array"はバッチではありませんが、まだいくつかのメソッドを使用してエミュレートできます。
基本的な考え方はArray[0]
、Array[1]
、などのようにそれらを、次の番号のIDと、変数を持っているということです...
FOR /F
は、節が('command')
と指定されたときにコマンド出力を取得できます。ここでは例です:
として出力を設定する
for /f %%G in ('dir *.txt /b') do echo %%~G
set
コマンドを使用します。for /f %%G in ('dir *.txt /b') do set result=%%~G
result
は、新しいファイル名で上書きされているので、これが最後のテキストファイルを提供します。
setlocal enableDelayedExpansion
set /a count=0
for /f %%G in ('dir *.txt /b') do (
set /a count+=1
set fileName[!count!]=%%~G
)
set fileName
これは、ファイルをループエミュレートされた配列にFoo.txt,Bar.txt,Baz.txt
setlocal enableDelayedExpansion
for /f %%G in ('dir *.txt /b') do set result=!result!,%%~G
このスクリプトでは、このような結果が得られます。 SET fileName
は、fileName
で始まるすべての変数を返します。
あなたは、このバッチファイルのために試してみることができます:Windowsのパスで1)どういうわけか、スラッシュの作品:
@echo off
Title Populate Array with filenames and show them
set "MasterFolder=%userprofile%\desktop"
Set LogFile=%~dpn0.txt
If exist "%LogFile%" Del "%LogFile%"
REM Iterates throw all text files on %MasterFolder% and its subfolders.
REM And Populate the array with existent files in this folder and its subfolders
echo Please wait a while ... We populate the array with filesNames ...
SetLocal EnableDelayedexpansion
@FOR /f "delims=" %%f IN ('dir /b /s "%MasterFolder%\*.txt"') DO (
set /a "idx+=1"
set "FileName[!idx!]=%%~nxf"
set "FilePath[!idx!]=%%~dpFf"
)
rem Display array elements
for /L %%i in (1,1,%idx%) do (
echo [%%i] "!FileName[%%i]!"
(
echo([%%i] "!FileName[%%i]!"
echo Path : "!FilePath[%%i]!"
echo ************************************
)>> "%LogFile%"
)
ECHO(
ECHO Total text files(s) : !idx!
TimeOut /T 10 /nobreak>nul
Start "" "%LogFile%"
私は、私にとって非常に奇妙に見える2つのビットを発見しました。 2)なぜあなたは 'con'が必要なのか理解できませんでした。このスクリプトは '> con'を使わなくても動作します。 – SteveFest
@SteveFest私はそれを編集する! – Hackoo
しかし、 '/'と '\\ 'はどちらも動作します、なぜですか? – SteveFest