我有以下需要修改的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 ..等等。有没有什么外卡匹配我可以在这里做的事情,以便它查看名称以亚马逊开头的所有文件夹?
我不想循环浏览文件夹。
答案 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