通配符文件夹匹配powershell

时间:2014-07-18 09:24:11

标签: windows shell powershell

我有以下需要修改的Power Shell脚本。

$filepath = "F:\feeds\Amazon\"
$temppath = $filepath+"temp.csv"
$files = ls -Path $filepath *.csv
foreach ($file in $files){
    gc $file.FullName |
    % { if($_.indexOf("|~|") -eq -1) {$_ -replace "`"((?:`"`"|.)*?)`"(?!`")", "|~|`$1|~|" -replace "`"`"", "`""} else {$_ -replace " ", " "}} |
    sc  $temppath
    ri $file.fullName
    rni -Path $temppath -NewName $file.fullName
}

此脚本循环遍历已定义文件夹中的所有.csv文件,并更改文本限定符。现在我需要改变一点,我被困住了。

基本上我的CSV文件会插入多个文件夹中。 Amazon1,Amazon2,Amazon3 ..等等。有没有什么外卡匹配我可以在这里做的事情,以便它查看名称以亚马逊开头的所有文件夹?

我不想循环浏览文件夹。

2 个答案:

答案 0 :(得分:5)

...... *字符?试试这个:

$filepath = "F:\feeds\Amazon*"
$files = ls -Path $filepath *.csv -recurse
foreach ($file in $files){
   $temppath = $file.directoryName+"\temp.csv"
   gc $file.FullName |
   % { if($_.indexOf("|~|") -eq -1) {$_ -replace "`"((?:`"`"|.)*?)`"(?!`")", "|~|`$1|~|" -replace "`"`"", "`""} else {$_ -replace " ", " "}} |
   sc  $temppath
   ri $file.fullName
   rni -Path $temppath -NewName $file.fullName

}

答案 1 :(得分:1)

是的Get-child-Item Cmdlet(dir)你可以在文件夹上使用外卡匹配:

Get-ChildItem "C:\temp\Amazon?\" -include *.csv -Recurse