0

ディレクトリツリー内の特定の名前を持つすべてのファイルに対して何らかの操作を実行しようとしている Windows バッチファイルがあります。

for /f "delims=" %%i in ('dir /s %1 ^| findstr /c:"Directory of"') do (
    set dir=%%i
    echo i = %%i
    echo dir = %dir:~14%
)

私の問題は、dirが常に for ループで見つかった最後の要素と等しいことです。したがって、このような出力が得られる場合があります。(わかりやすくするために配置を追加)

i = Directory of c:\alpha\myfile.txt
dir =            c:\charlie\myfile.txt
i = Directory of c:\bravo\myfile.txt
dir =            c:\charlie\myfile.txt
i = Directory of c:\charlie\myfile.txt
dir =            c:\charlie\myfile.txt

したがって、dirが「alpha」または「charlie」と等しくなることはありません。

探している機能を得るために何をする必要がありますか?

4

3 に答える 3

0

これにより、パスと完全なファイル仕様が報告されます。

@echo off
for /r %%a in (myfile.txt) do echo "%%~dpa" and full path is "%%a" & pause
于 2013-11-02T02:30:35.667 に答える