【dos BAT】关于DOS的批处理学习过程 之四 获取当前目录

有一个打包脚本,每次编译完都要

项目编译脚本里有个按%project%_%date%生成路径的脚本,在编译完打包成软件后,生成的bin文件也可以按改名字命名。可是经常有临时编译,临时打包的工作,每次去重命名很麻烦,但是都会把编译完的小文件放在一个目录下打包。于是试着找出将文件名定义成当前文件夹名字的想法就这样诞生了。


@echo off
set /P OptionName=  Which would you like? 
Copy enandprg.prg /b + nandprg.prg /b + partition.bin /b + qcsblhd_cfgdata.bin /b + qcsbl.bin /b + oemsbl.bin /b + amss.bin /b + EraseEFS2.bin /b + appsboot.bin /b + NvBackTableAndData.bin /b + logo.bin /b + boot.2knand.bin /b + recovery.2knand.bin /b + system.2knand.bin /b + persist.2knand.bin /b + userdata.2knand.bin /b + assetdata.bin /b %OptionName%.bin /b

改进后

@echo off
set DirName=%cd%
echo %DirName%
:a
if not "%DirName:\=%"=="%DirName%" set DirName=%DirName:*\=%&goto a
echo %DirName%
Copy enandprg.prg /b +  nandprg.prg /b + partition.bin /b + qcsblhd_cfgdata.bin /b + qcsbl.bin /b + oemsbl.bin /b + amss.bin /b + appsboot.bin /b + logo.bin /b + boot.bin /b + recovery.bin /b + system.bin /b + persist.bin /b + userdata.bin /b + udisk.bin /b %DirName%.bin /b
pause

第三行和第六行的显示是不一样的。比如当前目录为 F:\work\Project_7K\dailybuild

第一次处理处理a 后work\Project_7K\dailybuild

经过一个循环处理a的过程逐层的剥离,路径就剩下当前所在文件目录名dailybuild了


@echo off
echo 当前盘符:%~d0
echo 当前盘符和路径:%~dp0
echo 当前批处理全路径:%~f0
echo 当前盘符和路径的短文件名格式:%~sdp0
echo 当前CMD默认目录:%cd%
echo 目录中有空格也可以加入""避免找不到路径
echo 当前盘符:"%~d0"
echo 当前盘符和路径:"%~dp0"
echo 当前批处理全路径:"%~f0"
echo 当前盘符和路径的短文件名格式:"%~sdp0"
echo 当前CMD默认目录:"%cd%"
pause


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值