Как включить папки в Powershell -включить строку

#powershell

#powershell

Вопрос:

Я выполняю некоторые обновления имени пакетного файла, и у меня возникают проблемы с включением папок. В настоящее время он настроен только на определенные типы файлов, но я также хочу включить папки. Поскольку папки не имеют расширения, я не уверен, как указать папки в строке «-include». Будем признательны за любую помощь.

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

 Get-ChildItem k:/toolbox/powershell -Include *.gif, *.jpg, *.png, *.xls, 
*.xlsx, *.ppt, *.pptx, *.doc, *.docx, *.pdf -recurse | where {$_.name -match 
"_"} | foreach {
  $New=$_.name.Replace("_","-")
  Rename-Item -path $_.Fullname -newname $New -passthru
}
  

Комментарии:

1. -Include параметр — по какой-либо причине — не действует на имена каталогов … это действует только на .Name часть имени файла. [ вздох … ] мне сказали, что это работает на ps7, но я это не тестировал. ///// это означает, что вам нужно будет выполнить любую фильтрацию имен каталогов после того, как вы получите свои элементы из G-CI вызова.

2. Get-ChildItem есть параметр switch -Directory , по крайней мере, с версии 4.0, который будет возвращать только каталоги. Возможно, вам потребуется сделать это в виде двух инструкций — одной в качестве вашей текущей версии и одной, где вместо -Include вы используете -Directory .

3. Чтобы включить каталоги, вы должны сказать . Хотите верьте, хотите нет. *. не будет соответствовать.

Ответ №1:

 (Get-Item '~Desktop*') | foreach { $FolderName = $_.name.Replace("_","-"); Rename-Item -path $_.fullname -newname $FolderName -passthru }
  

Ответ №2:

Я бы просто добавил 2-й оператор:

 Get-ChildItem "k:/toolbox/powershell" -Recurse |where mode -eq d----- | where {$_.name -match "_"} | foreach {$New=$_.name.Replace("_","-")
Rename-Item -path $_.Fullname -newname $New -passthru } 
  

Если вы запустите Get-ChildItem "k:/toolbox/powershell" , вы получите список элементов, для которых «Режим» равен «d——» для каталогов, следовательно, вы можете использовать эти критерии фильтрации для каталогов