如果给定开始搜索的路径(在批处理文件中),则查找目录的绝对路径

时间:2009-12-24 05:50:03

标签: search windows-xp batch-file find

用户会给我一个绝对路径 - 比如“C:\ src”(传递到批处理文件中的%1)。然后,我需要找到名为“SQLScripts”的目录,该目录位于“C:\ src”的某个子文件夹中。

如何找到“SQLScripts”目录的绝对路径?另外,我并不担心现有SQLScripts目录的多个实例。

从我的谷歌搜索,解决方案可能涉及一个for循环和一些批量修饰符,如%〜$ PATH:1。此链接可能有用 - Special Batch Characters

所有解决方案都需要在Windows XP及更高版本上运行 请注意,我被限制使用批处理文件,并且不能使用其他“更简单”的方法,例如简单的Python代码片段来解决我的问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

此代码将SQLScripts的路径保存到%SQLSCRIPTSPATH%变量中,并且它适用于WinXP:

DIR SQLScripts /B /P /S>tmp.txt
for /f "delims=" %%a in (tmp.txt) do set SQLSCRIPTSPATH=%%a
del tmp.txt

修改

Joe建议的

更好的解决方案(不使用临时文件):

for /f "tokens=*" %%i in ('DIR SqlScripts /B /P /S') do SET SQLSCRIPTSPATH=%%i