2

特定のディレクトリの場所を見つけて、そのディレクトリパスをWindowsバッチスクリプト内の変数に格納する必要があります。

また、一致するものが見つかったときにコマンドを返すようにします(ディレクトリが既に見つかった後、ハードドライブ全体を検索しないようにするため)。

これまでのところ、コマンドラインでこれを試しました。

dir c:\ /s /b /ad | find "DirectoryName"

これに伴う問題は、一致が見つかった後でも、ドライブ全体を検索することです。さらに、バッチファイル内の変数に結果を保存する方法がまだわかりません。結果は1つだけである必要があります。

基本的に、Linux/bashでこのような何かをするのと同等のものが必要です。

export DIRPATH=`find / -name "DirectoryName" -print -quit`

見てくれてありがとう!

4

1 に答える 1

1

FOR /Fバッチでは、コマンドの出力を取得する必要があります。

FOR /F "usebackq delims=" %%p IN (`dir c:\ /s /b /ad ^| find "DirectoryName"`) DO (
  set "DIRPATH=%%p"
)
echo %DIRPATH%

find コマンドには引用符があるため、usebackq-option が必要です。また、 forコマンドではなくdirコマンドをパイプする必要があるため、パイプ文字を 1 回エスケープする必要があります。

于 2012-10-11T15:21:38.630 に答える