Переименование файлов с плохими символами

Я не уверен, что я делаю здесь неправильно, но когда я пытаюсь Rename-Item с новым именем файла я продолжаю сталкиваться с ошибкой, говоря, что оригинальный файл, который я хочу переименовать, не существует. Моя цель - удалить несколько "плохих" символов из заданного имени файла. Плохие персонажи []<>:* и я только сейчас смотрю на [] чтобы убедиться, что это работает, прежде чем добавлять остальные.

Пример кода:

$Directory  = "G:\TEMP\2016\"
$ExcelFiles = Get-ChildItem $Directory -Recurse -Include *.xls,*.xlsx |
              % {$_.FullName}

foreach ($excelfile in $excelfiles) {
    #Write-Host "Checking $excelfile"

    if ($excelfile -match "\[|\]") {
        $newfilename = $excelfile -replace "[\[\]]", ""
        Rename-Item $excelfile -NewName $newfilename
    }
}

0 ответов

Другие вопросы по тегам