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

来源:互联网 发布:针孔摄像头监控软件 编辑:程序博客网 时间:2024/05/22 07:45

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

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


@echo offset /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 offset DirName=%cd%echo %DirName%:aif not "%DirName:\=%"=="%DirName%" set DirName=%DirName:*\=%&goto aecho %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 /bpause

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

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

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


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


原创粉丝点击