'de devam eden yineleme için bir başvuru değişkenini nasıl saklamalıyım? $i.Name
veya $i.LastWriteTime
değişkenini depolamanın en iyi yolunu arıyorum, böylece Klasör adlarını çoğaltmadan benim .exe'üme yüklemeye devam edebilirim.Powershell
Muhtemelen gibi bir şey: Ben Görev Zamanlayıcısı fırlatılan bir komut dosyası, aşağıdaki adımları tamamlamak için yazdığı
$LastFolderProcessed = "Stored LastWriteTime from last processing"
if ($i.LastWriteTime -gt $LastFolderProcessed } | `
Continue....
:
1.) orijinal dizini kontrol edin ve yeni öğeleri kopyalamak (Klasörler) dizininin işlenmesi.
2.) işlem dizini aracılığıyla döngü ve her öğe
3.
) değişken $ i.Name4.) CMD ve Args Define için her öğeyi atama bulabilirsiniz. Çalıştırın (&).
Senaryo
Set-ExecutionPolicy unrestricted -Force
cpi C:\Apps\AutoTest\Analysis\2016\* C:\Apps\AutoTest\Loading -Recurse
foreach($i in Get-ChildItem C:\localApps\AutomationTest\Loading)
{
if ($i.PSisContainer) {$i.Name}
$CMD = 'C:\Program Files\Analysis\LoadProgram.exe'
$arg1 = "-database:Data Source=MSSQLSERVER"
$arg2 = "-directory:C:\Apps\AutomationTesting\Loading\$i"
$arg3 = "-config:C:\Program Files\Analysis\Configs\loadconfig.xml"
& $CMD $arg1 $arg2 $arg3
}
$i.LastWriteTime
komut [Args ile] benim .exe çalışır ve bulduğu her klasör adı ile $i.name
değişkeni yükleyecektir. Dizinde 5 klasör adı varsa, her yineleme için .exe'yi 5 kez çalıştırır.
Komut dosyası günlük olarak çalışacaktır.
Bir başvuru değişkenini saklamak için iyi bir yol arıyorum, böylece 2 gün içinde, betik açılırsa ve 3 yeni klasör adı bulursa, yalnızca yeni Klasörleri işleyecektir. Benim en iyi bahis en kolay yolu Export-Clixml
ve Import-Clixml
kullanmaktır farkla $i.LastWriteTime
Sonra yapmanız gereken istediğiniz tüm onay akımıdır: bu hemen hemen aynı olduğunu
yeniden o:
Yani, örneğin size bütün dosya listesini saklamak istiyorsa İçe aktardığınız şeylerle önceki yazma sürelerine karşı yazımlar. –@briantist Bu harika. Gerçekten iyi çalıştı. İşte ben de kullandığım iyi bir referans linki. [Import-Clixml] (https://technet.microsoft.com/en-us/library/ee176873.aspx) – Twdeveloper
@ChrisKuperstein Karşılaştırma sürecini arıyorum. ($ List.LastWriteTime -gt $ oldList.LastWriteTime} | ' Devam… (En son klasör isimlerini işleme koy) – Twdeveloper