Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 为什么我的字符串中的占位符没有被正确替换?_Powershell - Fatal编程技术网

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小时的工作时间要好得多。