Windowsバッチスクリプトでforループでトークンを反復処理する方法は?
ユーザーがファイルを検索し、そのファイルの親ディレクトリを出力できるようにするスクリプトを作成しています。これまでのところ、ファイル名からフル パスを取得できますが、必要なのは親ディレクトリだけです。正常に動作しますが、トークンを反復処理するより効率的な方法が必要です。
これが私が持っているものの抜粋です。file 変数は検索対象のファイルで、Path 変数はファイルへのフル パスです。
fOR /F "tokens=1-25 delims=\" %%i IN ("!thePath!") DO (
if %%j equ %file% set theParent= %%i
if %%k equ %file% set theParent= %%j
if %%l equ %file% set theParent= %%k
if %%m equ %file% set theParent= %%l
if %%n equ %file% set theParent= %%m
if %%o equ %file% set theParent= %%n
if %%p equ %file% set theParent= %%o
if %%q equ %file% set theParent= %%p
if %%r equ %file% set theParent= %%q
if %%s equ %file% set theParent= %%r
if %%t equ %file% set theParent= %%s
if %%u equ %file% set theParent= %%t
if %%v equ %file% set theParent= %%u
if %%w equ %file% set theParent= %%v
if %%x equ %file% set theParent= %%w
if %%y equ %file% set theParent= %%x
if %%z equ %file% set theParent= %%y
)
echo The parent directory is: %theParent%