Переименование Powershell с использованием переменной - PullRequest
0 голосов
/ 06 июня 2018

Здравствуйте, я не могу переименовать файл, используя приведенный ниже код.Пожалуйста, помогите мне в этом

    $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: Невозможно обработать аргумент, поскольку значение аргумента "путь" недопустимо.Измените значение аргумента «путь» и повторите операцию.В строке: 1 символ: 1 + Rename-Item -Path $ fn -NewName $ tn + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (:) [Rename-Item], PSArgumentException + FullyQualifiedErrorId: Аргумент, Microsoft.PowerShell.Commands.RenameItemCommand

1 Ответ

0 голосов
/ 06 июня 2018

Я бы использовал 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
...