|
5
|
| Eric Schoonover thSoft · 技术社区 · 15 年前 |
|
|
1
7
啊,这经常让人在大地狱里被绊倒。尽管powershell有当前目录的概念,但这与进程的当前目录不同。原因是,windows进程只能有一个当前目录,而powershell进程可能有多个运行空间/管道,每个运行空间/管道都有自己的当前目录,powershell当前目录甚至可能不是文件位置。 采用相对路径的.NET方法将根据进程的当前目录进行解析。所以为了安全起见,在调用.NET方法时,应该使用完全解析的路径。你可以:
$pwd在字符串内部展开(因为有双引号),它是一个自动变量,始终返回当前工作目录。它实际上返回一个pathinfo对象,因为它嵌入的字符串可能并不总是绝对的物理路径。如果使用psdrives(例如,我有一个temp:\驱动器映射到我的temp目录),则需要更明确。
powershell大师可能有更简洁的语法。上面的东西的确很难看。 |