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