bat脚本中%~dp0含义解释
阅读原文时间:2023年07月08日阅读:2

在Windows脚本中,%i类似于shell脚本中的$i,%0表示脚本本身,%1表示脚本的第一个参数,以此类推到%9,在%和i之间可以有“修饰符”(完整列表可通过"for /?"指令查看),表示对%i进行各种处理,其中d表示盘符,p表示除盘符外的路径,n表示文件名,x表示扩展名,f表示全路径(路径+文件名),s表示8.3格式的全路径,修饰符可以组合,所以%~dp0的意思是:脚本本身(%0)的路径(盘符d+路径p)。下面是实例演示,在F:\ghost\tmpFiles\下新建aa.bat文件,内容如下:

@echo off
echo %%0 = %0
echo %%1 = %1
echo %%2 = %2
echo %%~0 = %~0
echo %%~1 = %~1
echo %%~2 = %~2
echo %%~d0 = %~d0
echo %%~p0 = %~p0
echo %%~dp0 = %~dp0
echo %%~n0 = %~n0
echo %%~x0 = %~x0
echo %%~nx0 = %~nx0
echo %%~f0 = %~f0
echo %%~s0 = %~s0
echo %%~fs0 = %~fs0
echo %%~dp1 = %~dp1
echo %%~nx1 = %~nx1
echo %%~fs1 = %~fs1
echo %%~dp2 = %~dp2
echo %%~nx2 = %~nx2
echo %%~f2 = %~f2
echo %%~s2 = %~s2
echo %%~fs2 = %~fs2

然后加两个附加参数运行这个文件: "aa.bat f:\CMDTest.zip f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip",运行结果如下:

%0 = aa.bat
%1 = f:\CMDTest.zip
%2 = f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip
%~0 = aa.bat
%~1 = f:\CMDTest.zip
%~2 = f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip
%~d0 = F:
%~p0 = \ghost\tmpFiles\
%~dp0 = F:\ghost\tmpFiles\
%~n0 = aa
%~x0 = .bat
%~nx0 = aa.bat
%~f0 = F:\ghost\tmpFiles\aa.bat
%~s0 = F:\ghost\tmpFiles\aa.bat
%~fs0 = F:\ghost\tmpFiles\aa.bat
%~dp1 = f:\
%~nx1 = CMDTest.zip
%~fs1 = f:\CMDTest.zip
%~dp2 = f:\warez\Develop\C\
%~nx2 = codeblocks-12.11mingw-setup.zip
%~f2 = f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip
%~s2 = f:\warez\Develop\C\CODEBL~1.ZIP
%~fs2 = f:\warez\Develop\C\CODEBL~1.ZIP

参考What does %~dp0 mean, and how does it work?

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章