2016-04-07 5 views
0

Ich bin ein Powershell-Skript ausgeführt wird, mit dem folgendeWie kann ich in Powershell eine Datei kopieren/einfügen, wenn die Datei bereits vorhanden ist, um die neue Kopie der Datei zu erstellen?

Copy-Item -Path c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config -Destination c: \ Windows \ Microsoft. NET \ Framework \ v2.0.50727 \ CONFIG \ machine.orig

Wenn die machine.orig bereits vorhanden ist, wie kann ich es auf machine.orig1 kopieren, und wenn das bereits vorhanden ist, machine.orgin2?

Antwort

2

sicher ändern, wenn ich einen Vorschlag machen kann. Persönlich mag ich die Idee eines Datums-/Zeitstempels auf der Datei eher als eine inkrementelle Zahl. Auf diese Weise wissen Sie, wann die Datei gesichert wurde, und es ist weit weniger wahrscheinlich, dass Sie über die Datei in Unordnung geraten. Plus der Skriptcode ist einfacher.

Hoffe, das hilft.

+0

hmmm, das ist vielleicht keine schlechte Idee, ich werde es versuchen. Ich habe nur die inkrementelle Nummer erwähnt (und danke, dass Sie auch eine inkrementelle Zahl gesagt haben, mir fiel das Wort nicht ein), weil es schnell ging. Ich werde es versuchen und dich wissen lassen. –

+0

Vielen Dank Gene, das ist genau das, was ich brauchte und es funktioniert perfekt. Das ist für mich gelöst. –

+0

Ich werde auch hinzufügen, ich fühle mich wohler mit dieser Lösung, da es weniger bewegliche Teile gibt, danke nochmal –

0
#let us first define the destination path 
$path = "R:\WorkindDirectory" 
#name of the file 
$file = "machine.orgin" 
#let us list the number of the files which are similar to the $file that you are trying to create 
$list = Get-ChildItem $path | select name | where name -match $file 
#let us count the number of files which match the name $file 
$a = ($list.name).count 
#if such count of the files matching $file is less than 0 (which means such file dont exist) 
if ($a -lt 1) 
{ 
New-Item -Path $path -ItemType file -Name machine.orgin 
} 
#if such count of the files matching $file is greater than 0 (which means such/similar file exists) 
if ($a -gt 0) 
{ 
$file = $file+$a 
New-Item -Path $path -ItemType file -Name $file 
} 

Hinweis: Dies funktioniert unter der Annahme, dass die Namen der Dateien in Serie sind. Lassen Sie uns dieses Skript sagen verwenden Sie machine.orgin

machine.orgin1

machine.orgin2

machine.orgin3

erstellen und später machine.orgin2 löschen und wieder das gleiche Skript dann laufen Es wird nicht funktionieren. Hier habe ich ein Beispiel gegeben, wo ich versucht haben, eine neue Datei zu erstellen, und Sie können das gleiche kopieren solche Datei mit copy-item statt new-item

+0

Vielen Dank Gajendra, das ist eine gute Information, jetzt ist das Problem, dass ich dies zu 4 verschiedenen Dateien in verschiedenen Pfaden mache. Ich dachte, dass copy-item eine Art Erweiterung hatte, um eine bereits vorhandene Datei zu überschreiben und am Ende eine Nummer anzuhängen. –