如何使用Windows批处理文件在变量中找到目录并将其存储到变量中?

时间:2012-10-11 14:40:06

标签: windows batch-file

我需要找到特定目录的位置,然后将该目录路径存储到Windows批处理脚本中的变量中。

我还希望命令在找到匹配时返回(以避免在找到目录后搜索整个硬盘驱动器。)

到目前为止,我已经在命令行上尝试了这个:

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

这样做的问题是,即使找到匹配项,它也会搜索整个驱动​​器。另外,我仍然无法弄清楚如何将结果存储在批处理文件中的变量中。应该只有一个结果。

基本上我需要在Linux / bash上使用类似的东西:

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

感谢您的期待!

1 个答案:

答案 0 :(得分:0)

在批处理中,您需要FOR /F来获取命令的输出。

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

由于find命令中有引号,您需要usebackq-option。 并且有必要一次转义管道字符,因为它应该管道 dir 命令,而不是 for 命令