各フォルダのファイル名のリストを含むテキストファイルをエコーする方法


0

フォルダAとフォルダBがあるとしましょう。フォルダAにはファイルA1とA2があります。フォルダBにはファイルB1とB2があります。

各フォルダーにそのフォルダー内のファイルをリストするテキストファイルを作成したいです。そのため、フォルダAにfileA.txtを作成し、A1とA2のファイル名をリストし、Bのファイル名も同じにします。

次のことを試みたがうまくいかなかった

for /d %%g in ("*") do (
    for /r %%y in ("*.mp4") do (
        echo file '%%y'
    ) > ./%%g/mylist.txt
) 

任意の助けは大歓迎です


2
つかいます >> ファイルに追加します。独身者 > 前の内容を上書きするので、最後の書き込みだけが持続します。
LotPings

と言っていますそれで私はさらに一歩進んだ(下記は私の最新のスクリプトです)。問題は、フォルダAとフォルダBの両方に作成された各ファイルにすべてのAのリストがあることです。 BファイルAフォルダ内に作成されたmylist.txt内のAファイルと、Bフォルダ内のテキストファイル用のBファイルのみを含めます。助言がありますか?再度、感謝します! for /d %%g in ("*") do ( for /r %%y in ("*.mp4") do ( echo file '%%y' >> ./%%g/mylist.txt ) )
joe_sh

回答:


0

これは、コマンドプロンプトを使用して達成するのは非常に簡単です。

cd "\path\to\folder-A"
dir /b *.mp4 > fileA.txt

スイッチ /b 裸のファイル名だけをリストします。


先端をありがとう、しかしそれは私が本当に必要とするものではありません。これは膨大な数のフォルダなので、再利用可能なスクリプト(したがってバッチファイル)で自動化する必要があります。バッチファイルでそれを達成する方法についてのアドバイスは大歓迎です。
joe_sh

使用上の問題は何ですか dir バッチスクリプトで?
harrymc

0

から始まる %Base% このバッチはフォルダ構造を繰り返し作成します mylist.txt タイプのすべてのファイルを含む %ext% 前に付き file 一重引用符で囲みます。

:: Q:\Test\2018\10\27\SO_1370390.cmd
@Echo off
Set "Base=X:\start\path"
Set "ext=.mp4"

for /R "%Base%" %%A in (.) do (
    ( for %%B in ("%%~fA\*%ext%") do Echo file '%%~fB'
    ) >"%%~fA\mylist.txt"
)

0

for /d /r . %%a in (*) do >"%%a\myList.txt" dir /b "%%a"

各ディレクトリについて、現在のアクティブディレクトリから再帰的にbareの結果を送ります dir 処理されているディレクトリ内の指示されたファイルを指示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.