0
A
回答
0
你是几乎没有,只是用%~dp0..
,或者如果你想让它完全解决,用这一招
@echo off
call :resolve "%~dp0.."
goto :eof
:resolve
echo %~f1
goto :eof
一个解释,请参阅本SO回答https://stackoverflow.com/a/15568171/30447
1
%~dp0
指向paren t当前批处理文件的目录(包括尾部\
),%~dp0..
因此指向批处理文件的祖父目录。
您可以使用for
loop及其变量引用(%%I
)的~f
modifier解决路径:
for %%I in ("%~dp0..") do echo/%%~fI
从错字
相关问题
- 1. 停止批处理文件只处理最后一个文件?
- 2. 批处理文件意外退出
- 3. 批处理文件,创建另一个批处理文件
- 4. 从另一个批处理文件运行批处理文件
- 5. 从另一个批处理文件更新批处理文件
- 6. 批处理文件,使另一个批处理文件执行
- 7. 批处理文件,写入另一个批处理文件
- 8. 完成执行后作曲家退出批处理文件
- 9. 批处理文件键入退出后自动“
- 10. 批处理文件在完成后不会退出
- 11. 一个批处理文件
- 12. 一个批处理文件
- 13. 一个批处理文件如何获取另一个批处理文件的退出代码?
- 14. 批处理文件使另一个批处理文件,使另一个文件
- 15. 终止一个批处理文件与另一个批处理
- 16. 批处理脚本后停止向其他批处理脚本
- 17. 在批处理文件,该文件是另一个批处理文件里面
- 18. 执行多个批处理文件后,同时完成批处理文件
- 19. 从同一批处理文件中读取批处理文件的第一行?
- 20. 如何让一个批处理文件创建另一个批处理文件
- 21. 批处理文件“”
- 22. 批处理文件
- 23. 批处理文件
- 24. 批处理文件
- 25. 批处理文件。视频文件完成后打开并退出WMP12
- 26. 退出批处理脚本
- 27. Websphere bat文件退出批处理文件
- 28. 在后台运行批处理文件
- 29. 运行jar文件后关闭一个批处理文件
- 30. 清理批处理文件
除此之外,你的回答给我留下了更多的问题。 '%〜dp0.'指向父目录,'%〜dp0 ...'指向伟大的祖父母等。如果'%〜dp0'扩展为驱动器盘符和路径,为什么我需要使用'〜f'修饰符。在括号评估过程中''%〜dp0 ..“'没有扩展,因此将完全扩展的驱动器和路径作为变量'”%% I“'传递给一个字符串。为什么需要'〜f'的另一个扩展? – Compo
@Compo,为什么'%〜dp0..'会自动解决?无论您预先添加还是附加任何类似“..”的文件,'%〜dp0'只是简单地扩展到驱动('d')和路径('p')到当前批处理文件的父目录,结尾为'\'。 '.'指向相同的目录(所以'anydir \ middir \ subdir'与'anydir \ middir \ subdir \ .'相同),'..'指向父目录(所以'anydir \ middir \ subdir \ ..'和'anydir'一样);没有'...'(你需要做'anydir \ middir \ subdir \ .. \ ..'指向'anydir')... – aschipfl
@Compo,你是什么意思的“圆括号评估” ?你是说,'for'会自动解析'in'后面的部分?不,不是的;它不会解析类似于'anydir \ middir \ subdir \ .. \ .. \ .. \ file.ext'的路径,它只在最后一个路径元素出现时解决通配符('*','?')所以在最后'\'后面);您需要使用'〜f'修饰符来解析路径;注意'for'不访问文件系统来检查路径是否真正存在,除非包含通配符... – aschipfl