Powershell 为什么我的字符串中的占位符没有被正确替换?
在尝试格式化字符串时,我有不同的错误:Powershell 为什么我的字符串中的占位符没有被正确替换?,powershell,Powershell,在尝试格式化字符串时,我有不同的错误: $dir = "c:\path" $logfile = "$dir\logfile_{0}.txt" -f (get-date -format "yyyymmdd_hhmmtt") Function Log($message) { $message = "{0}: {1}" -f (get-date) $message write-host $message } Log "Start processing {0}" -f ($_.Ful
$dir = "c:\path"
$logfile = "$dir\logfile_{0}.txt" -f (get-date -format "yyyymmdd_hhmmtt")
Function Log($message) {
$message = "{0}: {1}" -f (get-date) $message
write-host $message
}
Log "Start processing {0}" -f ($_.FullName)
我希望$logfile
是c:\path\logfile\u 20160616\u 121012.txt
,但我得到的格式是c:\path\logfile\u 20160116\u 1201nachm。
我希望Log
输出16.06.2016 12:01:20开始处理Myfile.xlsx
,但我得到的是16.06.2016 12:01:20开始处理16.06.2016 12:01:20
我做错了什么
$\uU4.FullName
)中的管道变量,但未在那里使用任何管道。在将字符串传递给Log
函数之前,还需要将格式放在括号中Log
函数中的格式参数缺少逗号:
$dir = "c:\path"
$logfile = "$dir\logfile_{0}.txt" -f (get-date -format "yyyymmdd_hhmmtt")
Function Log($message) {
$message = "{0}: {1}" -f (get-date), $message
write-host $message
}
Log ("Start processing {0}" -f $logfile)
$\uU4.FullName
)中的管道变量,但未在那里使用任何管道。在将字符串传递给Log
函数之前,还需要将格式放在括号中Log
函数中的格式参数缺少逗号:
$dir = "c:\path"
$logfile = "$dir\logfile_{0}.txt" -f (get-date -format "yyyymmdd_hhmmtt")
Function Log($message) {
$message = "{0}: {1}" -f (get-date), $message
write-host $message
}
Log ("Start processing {0}" -f $logfile)
日期格式字符串
yyyymmdd\u hhmmt
末尾的tt
是AM/PM指示符
根据您收到的输出,您可能运行的操作系统的语言环境为德语(Nachmittag=PM)
如果需要秒,请使用ss
。如果没有AM/PM指示器,您可能也应该切换到使用24小时制(将hh
替换为hh
)
您可以将日期格式字符串放入占位符中:
"$dir\logfile_{0:yyyymmdd_HHmmss}.txt" -f (Get-Date)
在
Log
函数中,请注意-f
运算符的参数需要用逗号分隔。日期格式字符串yyyymmdd\u hhmmt
末尾的tt
是AM/PM指示符
根据您收到的输出,您可能运行的操作系统的语言环境为德语(Nachmittag=PM)
如果需要秒,请使用ss
。如果没有AM/PM指示器,您可能也应该切换到使用24小时制(将hh
替换为hh
)
您可以将日期格式字符串放入占位符中:
"$dir\logfile_{0:yyyymmdd_HHmmss}.txt" -f (Get-Date)
在
Log
函数中,请注意-f
运算符的参数需要用逗号分隔。谢谢,这部分有帮助。不过我还是得到了日志文件的奇怪文件名。有什么想法吗?我得到了这个日志文件名:c:\path\logfile\u 20163316\u 1233.txt
,这可能就是您所期望的?是的。奇怪…我一直收到这个奇怪的文件名。也许还有别的地方不对劲。你可以与usThanks分享整个脚本,这在一定程度上有所帮助。不过我还是得到了日志文件的奇怪文件名。有什么想法吗?我得到了这个日志文件名:c:\path\logfile\u 20163316\u 1233.txt
,这可能就是您所期望的?是的。奇怪…我一直收到这个奇怪的文件名。可能还有其他问题。您可能与我们共享整个脚本。您可能希望使用“$dir\logfile{0:yyyymmdd\u HHmmss}.txt”
。24小时工作时间更好。可能需要使用“$dir\logfile{0:yyyymmdd\u HHmmss}.txt”
。24小时的工作时间要好得多。