【发布时间】:2014-01-27 00:13:59
【问题描述】:
我对 PowerShell 完全陌生,正在尝试编写一个简单的脚本来生成日志文件。我搜索了论坛,找不到我的问题的答案。 我在网上找到了我认为有用的示例,并将其应用于我的脚本:
## 获取当前日期和时间。作为回报,你会得到类似这样的结果: Sat January 25 10:07:25 2014
$curDateTime = 获取日期
$logDate = 获取日期格式“MM-dd-yyyy HH:mm:ss”
$LogPath = "C:\Temp\Log"
$LogName = "log_file_" + $logDate + ".log"
$sFullPath = $LogPath + "\" + $LogName
功能日志开始{
[CmdletBinding()]
参数 ([Parameter(Mandatory=$true)][string]$LogPath, [Parameter(Mandatory=$true)][string]$LogName)
过程 {
## $sFullPath = $LogPath + "\" + $LogName
# 创建文件并开始记录
New-Item -Path $LogPath -Value $LogName –ItemType File
添加内容 -Path $sFullPath -Value "****************************************** ****************************************************** *********”
Add-Content -Path $sFullPath -Value “在 [$([DateTime]::Now)] 开始处理。”
添加内容 -Path $sFullPath -Value "****************************************** ****************************************************** *********”
添加内容 -Path $sFullPath -Value ""
}
}
Set-StrictMode -版本“最新”
日志开始
....
问题是如何使 Log_Start 函数使用我在脚本开头分配的变量,或者声明 [CmdletBinding()] 和函数本身是不可能的。 如果我尝试按照它的编码方式运行它,它会提示我输入路径和日志名,我认为它应该使用我已经定义的内容。显然我错过了这个概念。我当然可以在函数的参数声明中分配我需要的值,但我计划使用更多的函数,如 log-write 和 log-finish,并且不想复制相同的值。 我错过了什么?
【问题讨论】:
标签: function powershell parameters