2011-02-21 11 views
2

forループ内のフォルダの名前を取得する方法。私は、次のディレクトリ構造バッチファイル内のフォルダ名

c:\Main\**FolderName1**\FolderName3\somefile.txt 
c:\Main\**FolderName2**\FolderName4\somefile1.txt 

を持っていると私は、forループ内でFolderName1FolderName2の名前を取得したいです。

これは私が今やっている方法です:私は上記のプログラムを実行したとき、私はちょうどFolderName1FolderName2の名前をしたい一方で、それはすべてのサブフォルダの名前を印刷している

set "errfolderpath=C:\Main\" 
FOR /D /R %errfolderpath% %%K in (.\*) DO (
    SET folderName=%%~nK 
    echo foldername=!folderName! 
) 

と残りのフォルダをループしないようにします。

私はそれを明確にすることができたと思います。おかげさまで

+0

あなたは、いくつかの詳細を含める必要が - それはあなたがをループしていることを正確には何ですか? – Justin

+0

質問の詳細を更新しました。これが役立つことを願って – Sahil

答えて

0

/R folderパラメータには、開始フォルダと再帰検索の両方が指定されますが、後者ではなく前者が必要です。

ので、ちょうどこのように、ファイルマスクを使用してルートフォルダを使用します。

set "errfolderpath=C:\Main\" 
FOR /D %%K in ("%errfolderpath%*") DO (
    SET folderName=%%~nK 
    echo foldername=!folderName! 
) 
+0

それは働いた。ありがとう、トン – Sahil

+0

これは素晴らしい動作します。私のディレクトリには。それはWaynes.Worldのようなもので、Waynesという言葉だけを取り上げます。助言がありますか? – theB3RV

+0

@ theB3RV: '〜n 'は'〜nx'に変更する必要があります。例としてこのスクリプトを使用すると、2番目のSETコマンドは次のようになります: 'SET folderName = %%〜nxK'。これらの '〜'修飾子についての詳細は 'FOR /?'で読むことができます。 –

関連する問題