Powershell使用变量重命名

时间:2018-06-06 13:32:25

标签: powershell rename

您无法使用以下代码重命名文件。请帮帮我

    $date = Get-Date -format "yyyyMMdd"
    $path='D:\Users\user\Desktop\Working\'
    $fn = $path+'xxx_'+$date+'.txt'
    $tn = $path+'yyy'+$date+'.dat'
    Rename-Item -Path $fn -NewName $tn

我收到以下错误。

  

Rename-Item:无法处理参数,因为参数“path”的值无效。改变的价值   “path”参数并再次运行该操作。   在行:1个字符:1   + Rename-Item -Path $ fn -NewName $ tn   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidArgument:(:) [Rename-Item],PSArgumentException       + FullyQualifiedErrorId:Argument,Microsoft.PowerShell.Commands.RenameItemCommand

1 个答案:

答案 0 :(得分:2)

我使用Join-Path和Test-Path

$date = Get-Date -format "yyyyMMdd"
$path='D:\Users\user\Desktop\Working\'
$fn = Join-Path $path ("xxx_{0}.txt" -f $date)
$tn = Join-Path $path ("yyy_{0}.txt" -f $date)
If ((Test-Path $fn) -and !(Test-Path $tn)){
    Rename-Item -Path $fn -NewName $tn
} else {
    "{0} exists is {1}, `n{2} not exists is {3}" -f $fn,(Test-Path $fn),$tn,(!(Test-Path $tn))
}

成功重命名时没有输出,出错时输出如下:

D:\Users\user\Desktop\Working\xxx_20180606.txt exists is False,
D:\Users\user\Desktop\Working\yyy_20180606.txt not exists is False