从 Powershell 中的配置文件读取动态日志文件名

罗伯·贝瑞

我目前在 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从powershell中的部分读取文件名

来自分类Dev

在 PowerShell 配置文件中设置-AWSProxy

来自分类Dev

使用PowerShell读取下载文件的文件名

来自分类Dev

验证Powershell中输入的文件名

来自分类Dev

在 PowerShell 中重命名文件名

来自分类Dev

在 Powershell 中查找重复的文件名

来自分类Dev

从配置文件[PowerShell]中读取时分配适当的变量类型

来自分类Dev

Powershell文件名检查

来自分类Dev

文件名提取-Powershell

来自分类Dev

Powershell递归文件名读取并重命名

来自分类Dev

在Powershell文件名中按日期列出文件

来自分类Dev

如何使用PowerShell中的文件内容获取文件名

来自分类Dev

在PowerShell中删除用户配置文件有时会留下配置文件

来自分类Dev

Powershell配置文件中的功能没有显示?

来自分类Dev

无法加载PowerShell配置文件

来自分类Dev

Cmder PowerShell忽略配置文件

来自分类Dev

PowerShell配置文件不安全?

来自分类Dev

从powershell中的文件名中删除特殊字符

来自分类Dev

在Powershell中创建日志文件

来自分类Dev

在Powershell中创建日志文件

来自分类Dev

如何在Powershell中拆分文件名并从中选择文件名?

来自分类Dev

Powershell:将昨天的日期放在文件名中

来自分类Dev

PowerShell多条语句条件-比较文件名中的日期

来自分类Dev

使用Powershell删除文件名中的方括号字符

来自分类Dev

使用PowerShell重命名或删除文件名中的字符

来自分类Dev

Powershell从文件名中删除特殊字符

来自分类Dev

使用PowerShell在文件名中搜索字符串

来自分类Dev

如何在PowerShell中解析文件名

来自分类Dev

使用powershell从文件名中获取时间戳