2016-04-06 10 views
0

Ich habe ein sehr seltsames Problem und zog mir die Haare aus.Powershell Kopier-Artikel Ausgabe

Ich habe zwei PowerShell-Skripte. Lets sagen Main und Kind. Das untergeordnete Skript befindet sich in einem Ordner im Hauptordner:

Das Hauptskript wird ausgeführt, aus dem sich der Speicherort ändern kann. So bekomme ich die Position des Skripts am Anfang

$ScriptDir = (Get-Location).path 

ich einige Aufgaben ausführen Kopieren einschließlich der

copy-item -path $src -Destination $dst -force 

Alles funktioniert bis zu diesem Punkt groß ist. Dann rufe ich mein Kind Skript

& "$scriptdir\childfolder\Child_script.ps1" 

Die Skripte ausgeführt wird, und ich sehe andere Aufgaben ausgeführt werden. Aber ich habe einige Dateien im Child-Ordner, die ich kopieren muss. Aber die Kopie funktioniert nicht mit dem child_Script. Ich habe sogar

"Copying $src to $destination" | Out-file -append $logfile 

und ich sehe Copying C:\test\copythis.txt to C:\temp

Der Code in der childscript ist dies

$Scriptdir = (Get-Location).path 
$src = "$Scriptdir\copythis.txt" 
$dst = "C:\temp" 
copy-item -path $src -Destination $dst -force 

Wenn ich versuche, die gleichen Dateien in dem Haupt-Skript zu kopieren, alles works.Why Funktioniert das Kopierelement im Childscript nicht? Ich sollte auch erwähnen, dass alles mit dem Systemkonto läuft. Also keine Erlaubnisprobleme.

Jede Hilfe wäre willkommen. Cheers,

+0

Können Sie den gesamten Inhalt von 'child_script.ps1' oder zumindest den Teil, wo Sie versuchen, die Dateien zu kopieren, posten? Was machst du mit dem $ ScriptDir? Beachten Sie, dass dies nicht der Ort ist, an dem sich Ihr Skript befindet! –

+0

Hallo Jisaak, Der Code ist lang aber im Grunde genommen was ich oben gepostet habe ist im Grunde was es für den Kopierteil (bearbeitet) ist. Die Objekte, die ich kopieren möchte, befinden sich im Child-Ordner, deshalb mache ich das $ Scriptdir noch einmal. Danke für deine Antwort. – Besiktas

Antwort

0

Lesen der documentation:

Get-Location
Informationen Ruft über den aktuellen Arbeits Ort oder einem Ort Stapel.

....

Die Get-Location Cmdlets wird ein Objekt, das das aktuelle Verzeichnis, ähnlich wie die pwd (print working directory) Befehl darstellt.

Wenn Sie das Verzeichnis verwenden möchten, in dem sich das Skript befindet, verwenden Sie die Antwort von this StackOverflow question.

+0

Hallo Bas, Letme versuchen Sie das und kommen Sie zurück. Danke für deine Antwort, – Besiktas

Verwandte Themen