Rename-item 认为变量是路径

use*_*542 5 powershell rename rename-item-cmdlet

我正在尝试重命名一个文件,但 powershell 认为我的变量是一个字符串并且失败。

这是脚本:

$date=(get-date -Format d)
$time=(get-date -Format t)
$source = "D:\_qapi.log"
$newfilename = "$date"+"_"+"$time"+"_qapi[SERVERNAME].log"

Rename-Item $source -NewName $newfilename
Run Code Online (Sandbox Code Playgroud)

这是错误:

Rename-Item : Cannot rename because the target specified represents a path or device name.
Run Code Online (Sandbox Code Playgroud)

有人知道我可以解决这个问题吗?由于某种原因,powershell 将 $newfilename 中的 $date 变量视为路径。

Jam*_*den 4

日期时间字符串中存在非法字符。

这有效:

$date=(get-date -Format d) -replace("/")
$time=(get-date -Format t) -replace(":")
$source = "D:\_qapi.log"
$newfilename = "$date"+"_"+"$time"+"_qapi[$env:Computername].log"

Rename-Item $source -NewName $newfilename
Run Code Online (Sandbox Code Playgroud)