cmd: cd /D %~dp0 的含义

批处理文件中的一条语句
意思是
更改当前目录为批处理本身的目录
有些晕吧?不急,我举例
比如你有个批处理a.bat在D:\qq文件夹下
a.bat内容为
cd /d %~dp0
在这里

cd /d 注解:
(通常情况下,我们要进入其他盘符下的任意目录,需要在CMD窗口运行两次命令:第一次,进入盘符,第二次进入指定目录
#进入D盘
d:
#进入D盘下的test目录
cd test

通过使用CD命令,并加入参数 /d ,可以通过一个步骤,直接进入指定盘符下的任意文件夹。
#一个步骤进入D盘下的test目录
cd /d d:\test

cd /d %~dp0的意思就是cd /d d:\qq
%0代表批处理本身 d:\qq\a.bat
~dp是变量扩充
d既是扩充到分区号 d:
p就是扩充到路径 \qq
dp就是扩充到分区号路径 d:\qq

  • 12
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
解释下面这段cmd文件的作用:CLS REM The following is required in all INSTALL.CMD files if exist c:\system.sav\util\SetVariables.cmd Call c:\system.sav\util\SetVariables.cmd set version=1.05 Set block=%~dp0 set errcodeinstallinstallinstallinstallinstallinstallinstall=0 CD /D "%block%" set Log_Folder=%~d0\programdata\HP\logs if not exist "%Log_Folder%" md "%Log_Folder%" set Install_Log=%Log_Folder%\HotkeyInstall.log REM Remove the REM from the next line if your component does not support Silent Install (Application Recovery) REM Erase /F /Q *.CVA REM Add the command-line to have your component to be installed properly Pushd src if exist "%~dp0src\Uninstall.cmd" ( call "%~dp0src\Uninstall.cmd" ) if %errorlevel% NEQ 0 ( echo. >> "%Install_log%" echo *exit /b %errcodeinstall% >> "%Install_log%" echo. >> "%Install_log%" echo ^<^< %~f0 >> "%Install_log%" echo ^<^< %date% %time% >> "%Install_log%" echo. >> "%Install_log%" goto :END ) if exist "%~dp0src\InstallFusion.cmd" ( call "%~dp0src\InstallFusion.cmd" ) if %errorlevel% NEQ 0 ( echo. >> "%Install_log%" echo *exit /b %errcodefusion% >> "%Install_log%" echo. >> "%Install_log%" echo ^<^< %~f0 >> "%Install_log%" echo ^<^< %date% %time% >> "%Install_log%" echo. >> "%Install_log%" goto :END ) if exist "%~dp0src\InstallDriver.cmd" ( call "%~dp0src\InstallDriver.cmd" ) if %errorlevel% NEQ 0 ( echo. >> "%Install_log%" echo *exit /b %errcodedriver% >> "%Install_log%" echo. >> "%Install_log%" echo ^<^< %~f0 >> "%Install_log%" echo ^<^< %date% %time% >> "%Install_log%" echo. >> "%Install_log%"goto :END ) if exist "%~dp0src\InstallApp.cmd" ( call "%~dp0src\InstallApp.cmd" ) if %errorlevel% NEQ 0 ( echo. >> "%Install_log%" echo *exit /b %errcodeapp% >> "%Install_log%" echo. >> "%Install_log%" echo ^<^< %~f0 >> "%Install_log%" echo ^<^< %date% %time% >> "%Install_log%" echo. >> "%Install_log%" goto :END ) :END Popd REM Erase failure flag file when install succeeded. Most applications return zero to indicate success. ECHO %ERRORLEVEL% >> FAILURE.FLG IF %ERRORLEVEL% EQU 0 ERASE /F /Q FAILURE.FLG IF %ERRORLEVEL% EQU 3010 ERASE /F /Q FAILURE.FLG echo %date% %time% "Fusion=" %errcodefusion% >> %install_log% echo %date% %time% "Driver=" %errcodedriver% >> %install_log% echo %date% %time% "App=" %errcodeapp% >> %install_log% EXIT /B %ERRORLEVEL%
07-20
这段cmd文件的作用是安装一个组件,并记录安装过程中的日志。具体步骤如下: 1. 清除屏幕上的内容,执行CLS命令。 2. 注释REM行指示以下内容在所有INSTALL.CMD文件中都是必需的。 3. 如果存在路径为c:\system.sav\util\SetVariables.cmd的文件,则调用该文件。 4. 设置变量version的值为1.05。 5. 设置变量block的值为当前执行脚本的路径。 6. 设置变量errcodeinstall的值为0。 7. 切换到路径为"%block%\src"的目录。 8. 如果存在路径为"%~dp0src\Uninstall.cmd"的文件,则调用该文件。 9. 如果上述步骤返回的错误码不等于0,则将错误码写入安装日志,并跳转到:END标签处。 10. 如果存在路径为"%~dp0src\InstallFusion.cmd"的文件,则调用该文件。 11. 如果上述步骤返回的错误码不等于0,则将错误码写入安装日志,并跳转到:END标签处。 12. 如果存在路径为"%~dp0src\InstallDriver.cmd"的文件,则调用该文件。 13. 如果上述步骤返回的错误码不等于0,则将错误码写入安装日志,并跳转到:END标签处。 14. 如果存在路径为"%~dp0src\InstallApp.cmd"的文件,则调用该文件。 15. 如果上述步骤返回的错误码不等于0,则将错误码写入安装日志,并跳转到:END标签处。 16. 标签:END处,回到脚本开始时的位置。 17. 切换回初始目录。 18. 如果安装成功,删除FAILURE.FLG文件。 19. 将错误码和时间戳写入安装日志。 20. 退出脚本,并返回错误码作为退出代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值