我知道这个问题:Convert relative path to absolute using JavaScript
但它是关于在浏览器中运行的JavaScript。我的JS在Windows(WSH)上运行。
这意味着我没有以下物品:window
,document
和console
。我已经想出了一些事情:
既然你可以在路径中使用斜杠(/)而不是反斜杠()而你不需要转义斜杠,我会尝试使用/ ...我也认为最好删除尾部如果有的话削减。
所以这里有一些我已经想到的事情:
var currentDir = new ActiveXObject("WScript.Shell").CurrentDirectory.replace(/\\/g, '/'); //current directory with slashes
var root = currentDir.substring(0,2) //e.g. C: or D: (without trailing slash)
有几个不同的相对路径必须正确转换。为了确保,这里有一些例子:
如果脚本是从C:\folder1\folder2\folder3
启动的,则应相应地转换路径:
/
=> C:
/test
=> C:/test
\test
=> C:/test
\test\
=> C:/test
..
=> C:/folder1/folder2
C:\folder1\folder2\folder3\..\folder3-1\test.js
=> C:/folder1/folder2/folder3-1/test.js
../../test.js
=> C:/folder1/test.js
D:\
=> D:
.
=> C:/folder1/folder2/folder3
./test
=> C:/folder1/folder2/folder3/test
.\..\..
=> C:/folder1
D:/folder/another folder/file.js/../../other file.js
=> D:/folder/other file.js
是的..我有点被困在这里。我想这需要某种解析循环,但我无法想出解决方案。 我希望你能在这里帮助我。 :/
split()