如下所示,我有一个名为“ Current Path.bat”的批处理文件存储在“ C:\ A \ B \”中。
C:\A\B\Current Path.bat
Run Code Online (Sandbox Code Playgroud)
我想做的是输出当前目录的父目录/上目录的完整路径(即批处理文件的存储/执行位置)。
在这种情况下,预期结果应为:
C:\A\
Run Code Online (Sandbox Code Playgroud)
目前,我已经找到一种解决方法,但这并不是完美的选择。我想知道是否有更好的解决方案。
我目前的解决方法:
@echo off
set current_path=%cd%
echo Current Path: %current_path%
cd ..
set upper_path= %cd%
echo Upper Path: %upper_path%
Run Code Online (Sandbox Code Playgroud)
结果如下:
C:\>cd a
C:\A>cd b
C:\A\B>"Current Path.bat"
Current Path: C:\A\B
Upper Path: C:\A
Run Code Online (Sandbox Code Playgroud)
您的方法没有错;为了避免更改当前目录,例如,
pushd ..
set upper_path=%CD%
popd
Run Code Online (Sandbox Code Playgroud)
如果您想避免立即更改目录,可以使用for
:
for %%x in ("%CD%") do set upper_path=%%~dpx
Run Code Online (Sandbox Code Playgroud)
您可以选择两者中哪个更易读。
归档时间: |
|
查看次数: |
1074 次 |
最近记录: |