【发布时间】:2021-12-30 08:09:47
【问题描述】:
我有一个我想通过命令行执行的 powershell 脚本。为此,我需要输入 xml 文件的路径。最好能说明问题。 Error: File not Found
我的所有文件都在同一个目录 C:\Users\fynne\test 中(原因是我正在为其编写此脚本的用户)但不知何故在加载 xml 时跳过了测试目录(C:\未找到用户\fynne\01-38-029.xml)。我不知道为什么会这样。
这就是我加载 xml 的方式。
$PatientA = $args[0]
$PatientB = $args[1]
$XmlA = New-Object System.XML.XMLDocument
$XmlA.Load($PatientA)
$XmlB = New-Object System.XML.XMLDocument
$XmlB.Load($PatientB)
有人知道原因并有解决办法吗?我知道我可以通过使用一些字符串操作和 $pwd 来修复它,但我宁愿不这样做。
谢谢
【问题讨论】:
-
$XmlA.Load((Resolve-Path $PatientA)) -
@MathiasR.Jessen IMO
Convert-Path是更好的选择,因为它还将 PSPath 转换为本地提供程序路径。比较Resolve-Path ((Get-Item .).PSPath)与Convert-Path ((Get-Item .).PSPath),前者输出的路径对于 .NET API 输入无效。我们也应该通过-LiteralPath或者准备好可能得到一个路径数组。 -
@zett42 好点,我在下面的回答中包含了
Convert-Path -
这能回答你的问题吗? How to access a PSDrive from System.IO.File calls? -- 问题有些不同,但答案也适用于当前问题。
-
啊,现在我明白了。谢谢你们的帮助:)
标签: powershell input command-line parameters