1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 批处理获取服务器目录文件是否存在 批处理教程:获取批处理文件所在路径

批处理获取服务器目录文件是否存在 批处理教程:获取批处理文件所在路径

时间:2024-04-08 03:52:24

相关推荐

批处理获取服务器目录文件是否存在 批处理教程:获取批处理文件所在路径

在进行java开发时,经常需要使用bat去运行一些jar工具。比较常见的如tomcat、jboss等服务器都是通过bat去调用jar中的MAIN类来进行启动。在调用jar时,我们需要指定classpath等路径信息。下面将介绍怎样获取当前批处理文件的磁盘路径信息。

通常我们首先想到的做法是通过%cd%来获取当前磁盘路径信息,如下:@echooff

setcurrentBase=%cd%

echo%currentBase%

如果你的这个bat文件是被其他目录的bat文件进行调用的,此时%cd%获取到的值就不是你想要的值了。假如你有两个bat文件,分别如下C:\a.bat文件,C:\test\b.bat文件调用a.bat文件,文件代码如下:

a.bat文件@echooff

setcurrentBase=%cd%

echocurrentBase=%currentBase%

b.bat文件@echooff

call../a.bat

执行b.bat后输出的地址为 “C:\test”,而不是 “C:\”,因为%cd%获取的是当前运行目录地址。

使用%~dp0解决问题?

可以使用 %~dp0 获取当前bat文件的磁盘绝对路径(不包含文件名称)。修改b.bat文件如下:@echooff

echo%~dp0

执行该bat文件后,输出的地址为:“C:\test\”

其中:

%0是批处理文件本身的路径,%~dp进行扩展,d向前扩展到驱动器,p往后扩展到路径。因此,%~0为C:\test\b.bat,%~dp0为C:\test\。

常见命令

%i 提取第i个命令选项,i可以取值从1到9

%~i 提取第几个命令选项,i可以取值从1到9,提取的值不能包含引号

%~0 取文件名(名+扩展名)

%~f0 取全路径

%~d0 取驱动器名

%~p0 只取路径(不包驱动器)

%~n0 只取文件名

%~x0 只取文件扩展名

%~s0 取缩写全路径名

%~a0 取文件属性

%~t0 取文件创建时间

%~z0 取文件大小

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

实例:有个批处理文件 test.bat,代码如下:@echooff

echo%1

echo%~1

在cmd中输入命令:C:\>test.bat"test"

输出如下:

"test"

test

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。