我目前在 Powershell 脚本的顶部定义了所有变量,包括具有动态名称的日志文件:
$log = '\\serv1\Log\dev-Log' + $(get-date -f yyyy-MM-dd) + '.log'
这将给 $log 变量一个值:
\\serv1\Log\dev-Log2017-10-20.log
我现在计划将所有这些特定于环境的变量移动到一个单独的 XML 配置文件中,并且不太确定如何对动态名称做类似的事情。我目前有一个包含以下内容的 XML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<settings>
<process>FALSE</process>
<xmlDir>\\serv1\dev</xmlDir>
<scanDir>\\serv1\dev</scanDir>
<processedDir>\\serv1\dev\done</processedDir>
<errorDir>\\serv1\dev\err</errorDir>
<log>\\serv1\dev\log\dev-Log' + $(get-date -f yyyy-MM-dd) + '.log</log>
</settings>
当我读入如下配置变量时:
[xml]$configFile = Get-Content $PSScriptRoot\settings.xml
$log = $configFile.settings.log
它给了我:
\\serv1\dev\log\dev-Log' + $(get-date -f yyyy-MM-dd) + '.log
有没有办法让这个日志文件名动态化,这是从 XML 检索信息的最佳方式吗?
非常感谢任何帮助。谢谢。
如果您希望在执行脚本时填充日期,您可以在 XML 中放置一个占位符,然后在执行时替换它。例如:
XML:
<?xml version="1.0" encoding="utf-8" ?>
<settings>
<process>FALSE</process>
<xmlDir>\\serv1\dev</xmlDir>
<scanDir>\\serv1\dev</scanDir>
<processedDir>\\serv1\dev\done</processedDir>
<errorDir>\\serv1\dev\err</errorDir>
<log>\\serv1\dev\log\dev-Log##DATE##.log</log>
</settings>
代码:
[xml]$configFile = Get-Content $PSScriptRoot\settings.xml
$log = $configFile.settings.log -Replace '##DATE##',(get-date -f yyyy-MM-dd)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句