如何在Windows中获取批处理脚本的path?
我知道%0
包含批处理脚本的完整path,例如c:\path\to\my\file\abc.bat
我会path
等于c:\path\to\my\file
我怎么能做到这一点?
%~dp0
将是目录。 这是所有path修饰符的一些文档 。 好玩的东西 :-)
要移除最后的反斜杠,可以使用:n,m
子string语法,如下所示:
SET mypath=%~dp0 echo %mypath:~0,-1%
我不相信有一种方法可以将%0
语法与:~n,m
语法结合起来,这很不幸。
%~dp0
可能是一个相对path。 要将其转换为完整path,请尝试如下所示:
pushd %~dp0 set script_dir=%CD% popd
您可以使用以下脚本获取path,而不会拖尾“\”
for %%i in ("%~dp0.") do SET "mypath=%%~fi"
这将是%CD%
variables。
@echo off echo %CD%
%CD%
返回批处理脚本所在的当前目录。
我在Windows 7机器上工作,我已经结束了使用下面的行来获得我的bash脚本的绝对文件夹path。
查看http://www.linuxjournal.com/content/bash-parameter-expansion后,我find了这个解决scheme。;
#Get the full aboslute filename. filename=$0 #Remove everything after \. An extra \ seems to be necessary to escape something... folder="${filename%\\*}" #Echo... echo $filename echo $folder