再帰がフォルダ「C:\」に到達するとすぐに処理する必要があるすべてのファイルを探しているとき、私のフォルダ構造は "C:\ Temp \ SalesOrder \ 20160809 \ cc.txt" Temp \ SalesOrder "&" C:\ Temp \ SalesOrder \ 20160809 "処理中のcc.txtファイル。どのように私は、サブフォルダとファイルのみを処理し横切らないようにするGCI書き直しん「C:\ Tempにを\ SalesOrder 20160809 \」Windows powershellファイルプロセスの複製
$flatFilePath = "C:\Temp\Email.csv"
$flatFile = Import-Csv -Path $flatFilePath -Header Dir,Email
$emailID = @{}
foreach ($record in $flatFile) { $emailID[$record.Dir]=$record.Email }
# organization folder
$orgFolder = Get-ChildItem -Path "C:\Temp\" -Recurse -Exclude *.*
# Send email
foreach ($dir in $orgFolder) {
$processedfiles = $null
$emailTo = $null
Get-ChildItem -Path $dir.FullName -Recurse -Include *.txt,*.xls,*.csv,*.xlsx | ? { $_.FullName } |
Foreach-Object {
[string]$internalOrg = [System.IO.DirectoryInfo]$_.Directory.Name
$processedfiles += [string][System.IO.Path]::GetFileName($_.FullName) + " | ";
}
$emailTo = $emailID.Get_Item($dir.Name) -split ";"
if ($processedfiles) { Send-MailMessage -From $From -to $To -Cc $Cc -Subject $Subject -Body "$Body $processedfiles" -SmtpServer $SMTPServer -port $SMTPPort }
}
問題エリア:
Get-ChildItem -Path $dir.FullName -Recurse -Include *.txt,*.xls,*.csv,*.xlsx | ? { $_.FullName } |
Foreach-Object {
[string]$internalOrg = [System.IO.DirectoryInfo]$_.Directory.Name
$processedfiles += [string][System.IO.Path]::GetFileName($_.FullName) + " | ";
}
をあなたはGCIを取得しようとしているファイルを正確に何について少しより多くの情報を提供することはできますか?たとえば、フォルダ名だけを取得しようとしていますか? cc.txt以外のファイルですか? cc.txtと同じフォルダにないファイルはありますか? –
私はこれらのファイル "* .txt、*。xls、*。csv、*。xlsx"を含むすべてのフォルダを取得しようとしています。たとえば、 "C:\ Temp \"には、 "folder_a"、 "folder_b"、 "folder_c"、 "folder_d"、 "folder_e"というサブフォルダがあります。サブフォルダ "folder_a"、 "folder_e"には、これらの "C:\ Temp \ folder_a"と "C:\ Temp \ folder_e"だけで必要な条件に一致するファイルがあります。 – user25407