342
CasaRossa
Phalanx82

Powershell Script überwacht Ordner und kopiert wenn dieser Leer ist Dateien hinein

Mitglied: Sirbubu
19.11.2010
16:52:34 Uhr
5836 Aufrufe
1 Antwort
Noch nicht bewertet
Hi

Ich habe folgendes Problem http://www.administrator.de/Anzahl_bestim ... nun mit einem Powershell Script gelöst.

Zur verwendung dieses Scripts:
Ich habe einen Ordern in den Files zum importieren liegen. Leider habe ich 90000 Files die importiert werden sollen.
Durch die hohe Anzahl von Files benötigt der importer um die 10 Minuten um 1 File zu importieren.

Daher hier erst eine Abfrage wieviel Dateien im Ordner liegen.
Wenn dies 0 ist dann holt er sich die komplette Anzahl an Dateien und Selektiert dann soviel Files wie in der Variable angegeben.
Danach kopiert er diese Files in den Zielordner.

Die ausführung habe ich jetzt über die scheduled tasks gemacht.
Will am Montag noch einen Timer einbauen hatte jetzt aber kein bock mehr zu face-wink

01.
$destinationpath = "C:\ZielOrdner" 
02.
$sourcepath = "C:\SourceOrdner" 
03.
$NoFiles = "2" 
04.
 
05.
$T = (Get-ChildItem $destinationpath).count 
06.
 
07.
if ($T -eq $null)   
08.
 
09.
10.
$files=  Get-ChildItem -name $sourcepath | select -First $NoFiles 
11.
$files 
12.
foreach ($File in $Files){copy-item ($sourcepath+$File) $destinationpath} 
13.
14.
else 
15.
{exit}
Gruß

Sirbubu

Diskussionsverlauf (1 Antwort)
Mitglied: micneu
micneu schreibt am 19.11.2010 um 17:59:57 Uhr
Hallo Sirbubu,

habe mir erlaubt in dein script einen foulder check mit einzubauen.

01.
#   ************************************************************** 
02.
#   foulder-check 
03.
04.
#    einmal auf der powershell ausgeführt werden 
05.
#     "Set-ExecutionPolicy Unrestricted" 
06.
#   ************************************************************** 
07.
#     
08.
#   ************************************************************** 
09.
#   * Angepasst M.N. - POWERSHELL / Entwicklung   19.11.2010      * 
10.
#   *  
11.
#   ************************************************************** 
12.
 
13.
$ErrorActionPreference = 'SilentlyContinue' 
14.
 
15.
$destinationpath = "C:\Temp\11" 
16.
$sourcepath = "C:\Temp" 
17.
$NoFiles = "2" 
18.
$fsw = New-Object System.IO.FileSystemWatcher 
19.
$T = (Get-ChildItem $destinationpath).count 
20.
$fsw.Path = $sourcepath 
21.
$result = $fsw.WaitForChanged("All") 
22.
$result 
23.
 
24.
if ($T -eq $null) { 
25.
    $files= Get-ChildItem -name $sourcepath | select -First $NoFiles 
26.
    $files 
27.
    foreach ($File in $Files) { 
28.
        copy-item '$sourcepath\$File' '$destinationpath' 
29.
30.
  }

gruß michael
mehr ...Ähnliche Beiträge