Powershell kopieren von Dateien über das Netzwerk
Versucht zu kopieren einige Dateien vom server lokal auf die Netzwerkfreigabe, wie in den folgenden Bildern gezeigt:
Ordner 1
Ordner 2
Ich erreichen müssen, ist kopieren Sie den Inhalt des ROOT-Ordner unter der QUELLE zum ZIEL-Ordner. Aber jedes mal, wenn Sie kopiert den Inhalt, ich möchte es erstellen Sie einen neuen Ordner mit dem gleichen Ziel-Ordner-Namen, aber mit dem Suffix eine Art fortlaufende Nummerierung. Die Anzahl der Ordner & Dateien in die SOURCE/ROOT Ordner immer gleich bleibt (2 Ordner & 2-Dateien). Ich muss nur alle diejenigen, die source-content-gehen Sie in einen neuen Ordner auf dem Ziel jedes mal, wenn ich das Skript ausführen. Hier ist ein Beispiel für ein Skript habe ich versucht, aber es ist einfach nicht das tun, was ich brauche:
$date = Get-Date -format MMMM-dd-yyyy
$date2 = Get-Date -format yyyyMMdd
$Source = "C:\SOURCE\ROOT"
$Destination1 = "\\netshare\DESTINATION\DATA_May-26-2014"
$Destination2 = "\\netshare\DESTINATION\DATA_May-26-2014-1st"
$Destination3 = "\\netshare\DESTINATION\DATA_May-26-2014-2nd"
$Destination4 = "\\netshare\DESTINATION\DATA_May-26-2014-3rd"
$Destination5 = "\\netshare\DESTINATION\DATA_May-26-2014-4th"
$Destination6 = "\\netshare\DESTINATION\DATA_May-26-2014-5th"
#Check destination path
if (Test-Path $Destination1)
{
#then copy
robocopy $Source $Destination2 /MIR /Z /E /fft /MAXAGE:$date2
}
if (Test-Path $Destination2)
{
#then copy
robocopy $Source $Destination3 /MIR /Z /E /fft /MAXAGE:$date2
}
if (Test-Path $Destination3)
{
#then copy
robocopy $Source $Destination4 /MIR /Z /E /fft /MAXAGE:$date2
}
if (Test-Path $Destination4)
{
#then copy
robocopy $Source $Destination5 /MIR /Z /E /fft /MAXAGE:$date2
}
if (Test-Path $Destination5)
{
#then copy
robocopy $Source $Destination6 /MIR /Z /E /fft /MAXAGE:$date2
}
else
{
robocopy $Source $Destination1 /MIR /Z /E /fft /MAXAGE:$date2
}
War ich zunächst mittels robocopy nur für einen ähnlichen Zweck, aber das kopieren von Projekt benötigt die Ordner haben den Namen des Monats zusammen mit ihm (wie in "Mai"), die nicht verfügbar war mit robocopy und so hatte ich zum Schalter, um das powershell-Skript und kombinieren robocopy.
Irgendwelche Ideen auf, wie kann ich ein besseres script?
InformationsquelleAutor user3679127 | 2014-05-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Element Kopieren. Robocopy wäre cool, wenn Sie Taten, eine wahre Spiegel, in meiner Erfahrung mit Element kopieren ist besser für die meisten Fälle in der PowerShell. Wenn Sie möchten, einen eindeutigen Namen zu erstellen, die eine TimeStamp-variable und übergeben Sie es an das Ende oder ähnliches.
Auch wenn du dich mit RoboCopy müssen Sie sich für Niveau, wenn ausgeführt wird, innerhalb der einige andere tool(wie TeamCity).
Schafft einen tatsächlichen Fehler-code basierend auf Fehler-Niveau. Die für RoboCopy, ErrorLevel 1 bedeutet eigentlich Erfolg, 0 bedeutet keine änderung.
Fühlen Sie sich frei, um daneben meine Antwort wie die Antwort, wenn es dein problem gelöst hat, froh, dass ich helfen konnte. Ich benutze meistens powershell in diesen Tagen auf windows. Allerdings habe ich noch uns ROBOCOPY mich manchmal, vor allem für die /MIR-Schalter.
InformationsquelleAutor Jason Hughes