Мне нужно удалить некоторые пробелы, тире и строку даты в именах файлов CSV-файлов в папке

1

Я должен составлять квартальный отчет, используя импортированные файлы .csv, которые мы извлекаем из iAuditor.

Все эти CSV-файлы представлены в следующем формате:
BOW 25-063 - - 2017-12-21.csv(«BOW» - это название здания, пятизначная строка - этаж + номер комнаты)
или
RMP 1108 - - 2017-12-21.csv (опять же, «RMP» = здание / 1108 = номер 08 на 11-м этаже)

Мне нужно просто обрезать это до названия здания, пространства, этажа + комнаты #
Итак: BOW 25-063.csv
или RMP 1108.csv

У меня есть короткий сценарий, который выполняет большую часть работы, но также занимает пространство между зданием и номером комнаты:

Get-ChildItem 'H:\csv Files\Testing' -filter *.csv | rename-item -NewName { $_.name.substring(0,$_.BaseName.length-15) + $_.Extension-replace " ","" }

Там более 100 комнат, поэтому мне нужно переименовать более 100 файлов, чтобы их можно было импортировать в файл .xlsx для составления отчетов.

Все они должны следовать установленному нами соглашению об именах, чтобы не допустить ошибок, и мне не нужно вручную настраивать более 100 имен файлов.

Ищите твик для сокращения имени по мере необходимости, оставляя один пробел между зданием и номером этажа / комнаты.

Джефф
источник
Не забудьте принять ответ , отметив маленькую галочку в левом верхнем углу моего ответа и сделав его зеленым, а не серым, и этот ответ примет ответ, давая мне кредит и давая знать другим.
Сок Pimp IT

Ответы:

1

Вы можете использовать дополнительную строку кода, используя метод вставки, чтобы вернуться назад и выполнить добавление пробела после 3-го символа в только что отформатированных именах файлов после выполнения первой команды, которую вы уже используете.


инструкции

  1. Запустите свой оригинальный PowerShell сначала еще

    Get-ChildItem 'H:\csv Files\Testing' -filter *.csv | 
    rename-item -NewName { $_.name.substring(0,$_.BaseName.length-15) + $_.Extension-replace " ","" }
    

    Результат

    BOW25-063.csv


  1. Запустите PowerShell, чтобы добавить пробел после третьего символа имени файла.

    Get-ChildItem 'H:\csv Files\Testing' -filter *.csv | 
    rename-item -NewName {$_.BaseName.insert(3,' ') + $_.Extension}
    

    Результат

    BOW 25-063.csv


Дополнительные ресурсы

Сок Pimp IT
источник
2
@Jeff Не забудьте принять ответ, отметив маленькую галочку в левом верхнем углу моего ответа и заставив его перейти к зеленому цвету, а не к серому, и это примет ответ, дав мне кредит и сообщив другим тоже.
Сок Pimp IT