用户会给我一个绝对路径 - 比如“C:\ src”(传递到批处理文件中的%1)。然后,我需要找到名为“SQLScripts”的目录,该目录位于“C:\ src”的某个子文件夹中。
如何找到“SQLScripts”目录的绝对路径?另外,我并不担心现有SQLScripts目录的多个实例。
从我的谷歌搜索,解决方案可能涉及一个for循环和一些批量修饰符,如%〜$ PATH:1。此链接可能有用 - Special Batch Characters。
所有解决方案都需要在Windows XP及更高版本上运行 请注意,我被限制使用批处理文件,并且不能使用其他“更简单”的方法,例如简单的Python代码片段来解决我的问题。
谢谢!
答案 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