У меня возникают проблемы со сценарием, который я написал, который (предположительно) должен сделать следующее. У меня есть одна папка с несколькими файлами csv, и я хочу скопировать последний файл с именем компании в другую папку и переименовать его.Powershell - уничтожение файла после копирования
Он находится в текущем формате:
21Feb17070051_CompanyName_Sent21022017
Я хочу это в следующем формате:
CompanyName21022017
Поэтому у меня есть следующий Powershell скрипт, чтобы сделать это:
## Declare variables ##
$DateStamp = get-date -uformat "%Y%m%d"
$csv_dest = "C:\Dest"
$csv_path = "C:\Location"
## Copy latest Company CSV file ##
get-childitem -path $csv_path -Filter "*Company*.csv" |
where-object { -not $_.PSIsContainer } |
sort-object -Property $_.CreationTime |
select-object -last 1 |
copy-item -Destination $csv_dest
## Rename the file that has been moved ##
get-childitem -path $csv_dest -Filter "*Company*.csv" |
where-object { -not $_.PSIsContainer } |
sort-object -Property $_.CreationTime |
select-object -last 1 | rename-item $file -NewName {"Company" + $DateStamp + ".csv"}
Файл, похоже, скопирован, но переименование не удалось -
Я думаю, что это как-то связано с порядком работы powershell или фактом, что он не может видеть .csv в переменной $ file. В месте назначения есть другие файлы (текстовые файлы, пакетные файлы), если это влияет на вещи. Любая помощь в том, где я ошибаюсь, будет оценена по достоинству.
'$ file' не определен и не требуется. Командлет получает параметр файла из конвейера. – wOxxOm
Отлично ... всегда что-то просто! Благодарю. – Ricky