0

わかりました、a) 古くてくだらない技術 (BAT ファイル) を使用し、b) 冗長な質問と思われるものを尋ねることについて、前もってお詫び申し上げます。この特定のケースで使用を許可されているテクノロジーには制限があり、この件に関する何十もの投稿を見た後、必要なものに適応できるものを見つけることができません.

次のようなディレクトリ構造があります: A B C D など... XYZ その他のフォルダ

私の BAT ファイルは、このファイル システムの外にあります。レベル「C」から始めて検査する必要があり、「XYZ」ディレクトリを見つける必要があります。C と XYZ の間のフォルダーは、ファイルが作成された環境に応じて変数名を持つことができます。C から XYZ までのディレクトリ名 (つまり、「C\D\E\F....\XYZ」) で構成される文字列を最終的に作成する必要があるため、BAT ファイルが完成したときに変数に入れることができます。変数を参照して、別のコマンドを実行できます。

FIND と FOR を使用して投稿を見てきましたが、a) 文字列を開始ディレクトリに制限する方法がわからないようです (たとえば、FOR と DIR を組み合わせると、「A\B\C... ") と "XYZ" に到達したときに停止する方法...

どんな助けでも大歓迎です。

4

2 に答える 2

0

a) 質問の場合:

FOR /F "TOKENS=*" %%d IN ('DIR A\B\C\XYZ /S /AD /B') DO SET variable=%%d

a) および b) の質問:

FOR /D /R "A\B\C" %%d IN (*.*) DO IF /I "%%~nxd"=="XYZ" (SET variable=%%d& GOTO :EOF)

ただし、これによりバッチスクリプトが終了するため、次のものが必要です。

... your batch code
CALL :GET_XYZ
... your batch code
GOTO :EOF

:GET_XYZ
FOR /D /R "A\B\C" %%d IN (*.*) DO IF /I "%%~nxd"=="XYZ" (SET variable=%%d& GOTO :EOF)
ECHO XYZ not found!
GOTO :EOF
于 2013-08-26T13:43:02.040 に答える