Почему Copy-Item вставляет пробел - PullRequest
0 голосов
/ 10 апреля 2019

Следующий код работает как требуется, но содержит нежелательный пробел непосредственно перед расширением «.txt». Я не могу понять, почему.

$source = 'C:\Users\xzy\Desktop\source\'
$dest = 'C:\Users\xzy\Desktop\dest\'
$mydate = (get-date).AddDays($DateOffset).Tostring('ddMMMyy') 

Get-ChildItem -Path $source | Where {$_.Name -match "abc (\b\d{2}\b)"} | ForEach-Object {
Copy-Item -Path $_.FullName -Destination "$dest\$($_.BaseName,$mydate,$_.Extension)"
}

Обязательное имя файла: abc 83 09Apr19.txt

Текущий результат: abc 83 09Apr19 .txt

1 Ответ

0 голосов
/ 12 апреля 2019

Поскольку Copy-Item принимает ввод по трубопроводу, ForEach-Object не является обязательным:

$DateOffset = -1
$source     = 'C:\Users\xzy\Desktop\source\'
$dest       = 'C:\Users\xzy\Desktop\dest\'
$mydate     = (get-date).AddDays($DateOffset).Tostring('ddMMMyy') 

Get-ChildItem -Path $source | 
  Where Name -match "abc (\b\d{2}\b)" | 
   Copy-Item -Destination {Join-Path $dest ("{0} {1}{2}" -f  $_.BaseName,$mydate,$_.Extension)}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...