批处理路径相关

获取批处理文件所在路径

       在开发时,经常需要使用批处理运行一些程序,java程序 犹其是这样,往往需要运行时根路径。Hardcode一个路径总是令自己觉得不自在,例如一个java程序从一台机copy到另外一台机,盘符往往发生变化,先修改一下bat里的路径再运行显然很麻烦。 
       在批处理开头加入cd /d %~dp0 一行代码就真真实实地做到“编写一次,到处运行”。%0是批处理文件本身的路径,%~dp进行扩展, d向前扩展到驱动器,p往后扩展到路径。例如,你的bat文件在e:/mybat/test.bat,则%0就是e:/mybat/test.bat, %~dp0是e:/mybat/。 
        另外,%i提取第i个命令选项,例如%1提取第1个option,i可以取值从1到9 
        %~0: 取文件名(名+扩展名) 
        %~f0:取全路径 
        %~d0:取驱动器名 
        %~p0:只取路径(不包驱动器) 
        %~n0:只取文件名 
        %~x0:只取文件扩展名 
        %~s0:取缩写全路径名 
        %~a0:取文件属性 
        %~t0:取文件创建时间 
        %~z0:取文件大小 

以上选项可以组合起来使用。


通过PUSHD和POPD保存当前路径

PUSHD命令
保存当前目录以供 POPD 命令使用,然后改到指定的目录。 

PUSHD [path | ..] 

path 指定要成为当前目录的目录。 

如果命令扩展被启用,除了一般驱动器号和路径,PUSHD 
命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个 
指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器 
号更改当前的驱动器和目录。可以从 Z: 往下分配临时驱动器 
号,使用找到的第一个没有用过的驱动器号。 

POPD命令 
更改到 PUSHD 命令存储的目录。 

如果命令扩展被启用,从推目录堆栈 POPD 驱动器时,POPD 
命令会删除 PUSHD 创建的临时驱动器号。

猜你喜欢

转载自blog.csdn.net/mfkjq/article/details/78562551