【发布时间】:2020-05-13 22:31:01
【问题描述】:
我有一个 PowerShell 脚本,用于查找特定文件和文件夹以及 XML 文件中包含的文件和文件夹 URL(写入 PowerShell 中的变量)。我希望能够在当前用户的目录下查找文件,但是xml文件不能包含动态变量,所以不能只做下面的操作
<URL>C:\Users\$Env:UserName\SomeFile.*</URL>
所以我所做的就是声明一个 XML 实体:
<!DOCTYPE config [
<!ENTITY user "UserName!">
]>
但是,我不知道如何从 PowerShell 引用这个实体来更新它。所以我不能这样做:
$Config.Config.UserName = $Env:UserName
一旦将 XML 文件写入 PowerShell 变量,是否仍然可以访问实体。 IE。写入这样的变量:
[xml]$Config = Get-Content ./SomeXML_File.xml
更新——这是我正在查看的示例。我想使用 PowerShell 替换“用户名!”与系统的当前用户。所以“&user;”当脚本从 xml 文件中获取数据时,将被读取为当前系统用户。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config[
<!ENTITY user "UserName!">
]>
<Configuration>
<Files>
<URL>C:\Users\&user;\Desktop\NewFolder</URL>
</Files>
</Configuration>
'''
【问题讨论】:
-
以上链接对您有帮助吗?如果不是,那么在使用
.SelectNodes方法时会出现什么错误或问题? -
我收到重载定义错误。我将使用我的 xml 文档示例更新我的问题,也许这会有所帮助。
-
就像实体不存在一样,但实际的文件结构替换了“&user;”使用“用户名!”的声明文本......所以如果我可以更新“用户名!”那么我认为它会起作用....而且我宁愿不使用 get-content -replace() 解决方法。
标签: xml powershell