$extractFile = '\\C:\Test\book1.csv'
$suffix = Get-Date -Format '_MMddyyyy'
$newFile = $extractFile -replace '\.([^.]*)$',"$suffix.`$1"
Move-Item $extractFile -Destination $newFile
Оператор -replace
делает замену regular expression, и как это работает:
Елки т аргумент шаблон матч, который мы хотим заменить:
'\.([^.]*)$'
^^^
| | |
Dot | |
| End of string
Capture group with 0 or more non-Dot characters (file extension)
Второй аргумент является строкой, мы хотим, чтобы заменить подходящий шаблон с:
"$suffix.`$1"
^ ^
| |
| $1 refers to that first capture group from the match pattern, escaped to avoid string expansion
PowerShell parser expands this to "__05262015" because we use double-quotes
Так значение $newFile
становится \\C:\Test\book1_05262015.csv
(по крайней мере, сегодня)
в прошлом мы используем Move-Item
с полным новым путем эффективно переименовать файл
Вы смотрели на 'Rename-Item' и' Get-date'? Возможно, вам нужна манипуляция строки с помощью '$ extractFile'? – Matt
Часть, которую вы прокомментировали '# Открытие', не открывает файл. Он просто определяет переменную с именем файла (как многострочную строку). Откуда взялось имя файла? У вас есть это в своем коде (так что вы можете просто определить строку по-разному), или это происходит откуда-то еще (так что вам нужно изменить существующую строку)? –