У меня есть этот код, который просматривает все файлы в каталоге и обрабатывает его в exe. И там куча файлов разных типов/расширений. Что мне нужно сделать, так это просто получить файлы .txt из каталога, и только файлы .txt будут обрабатываться в .exe. Это возможно? Какое лучшее решение для моей проблемы? Исключить другое расширение файла? Потому что мне нужно получить 2-3 расширения файла в каталоге, и .txt является одним из них. Заранее спасибо. Я застрял здесь.
$Allfiles = Get-ChildItem "C:\SCRIPTS\tester\TESTALL\" -Recurse | Where {!$_.PSIsContainer -and ($_.CreationTime -gt $oldday) -and !$_.FullName.StartsWith('C:\SCRIPTS\tester\TESTALL\excludethisfolder\') } | Select-Object FullName
foreach ($file in $Allfiles) #check for each file in variable $Allfiles)
{
$file1 = $file.Fullname
$foldername = Get-ChildItem -Path $file.FullName
$input = $foldername.DirectoryName
$Mothername = Get-Item -Path $input
$output = $Mothername.Parent.Fullname
$output = "$output\sc"
Write-Host "The Filename: $file1"
Write-Host "The FolderName: $input"
Write-Host "$output"
Write-Host "$Excludefolder"
$argument = "$input $output $input"
Start-Process -FilePath "C:\SCRIPTS\process.exe" -ArgumentList $argument #execute the process
}
Clear-variable -Name Allfiles
Я уже пробовал какой-то другой скрипт, исключающий или включающий txtfile, но он не работает.
Я попробовал этот, и да, он работает для меня, но он просто исключает .txt в выводе, но не в процессе FOREACH.
$Allfiles = Get-ChildItem "C:\SCRIPTS\tester\TESTALL\" -Recurse -exclude "*.txt"| Where {!$_.PSIsContainer -and ($_.CreationTime -gt $oldday) -and !$_.FullName.StartsWith('C:\SCRIPTS\tester\TESTALL\excludethisfolder\') } | Select-Object FullName
Я действительно застрял с этим, я уже пробовал включать/исключать функции, но это не работает.