Привет, я использую следующий Powershell скрипт, чтобы очистить некоторые имена файлов ..Замена "." в Powershell без изменения расширения
get-childitem -recurse -Include *.mp4 | foreach { rename-item $_ $_.Name.Replace(".", " ") }
Короче говоря, замена «» с "" .. Однако это также удаляет "." предшествующий расширению .. Есть ли способ исключить окончательное "." поэтому расширение не изменяется?
Используя пункт «Переименовать», вам не нужно указывать путь (на самом деле это лучше не делать, поскольку, если путь отличается, он просто выдает ошибку). Вы действительно могли бы укоротить эту вещь -NewName до '' $ ($ _. BaseName.Replace (".", "")) $ _. Extension) "' – TheMadTechnician
@TheMadTechnician Я использую этот код: 'get-childitem -recurse -Include * .mp4 | ForEach-Object {rename-item $ _ -newname "$ ($ _. BaseName.Replace (". "," ")) $ _. Extension)"} ', но я продолжаю получать ошибку в Cht58 (rename-item) .. Я ошибаюсь в синтаксисе? –
Извините, у меня был ')', где я должен был иметь '+' там. Я бы сделал: 'Get-ChildItem -recurse -include * .mp4 | ForEach {$ _ | Rename-Item -NewName "$ ($ _. BaseName.Replace (". "," ") + $ _. Extension)"} ' – TheMadTechnician