schreckinger 10 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 Hallo Leute. So habe wieder eine neue Herrausforderung. Ich benötige bei einen Script eine Ornder eingabe. Diese Soll der User des Scriptes selbst eingeben. Wie löst man eine solche Thematik am besten ? Mit read-host ? Danke und ich wünschen allen Member von MCSEBoard einen wünderschönen Guten Morgen :) und auf gehts int Powershell Zitieren Link zu diesem Kommentar
magman 10 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 Guten Morgen Ja Read-Host ist gut. Du bist schon auf dem richtigen Weg. Bei Google und hier im Board findest du eine Menge nützlicher Infos damit du das Script erfolgreich selbst erstellen kannst. Wenn du ein fertiges Script hast kannst du es ja mal online stellen. Martin Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 Hallo danke erstmals ... robocopy "Netzwerkpfad - Quelle" "Netzwerkpfad - Ziel" /MIR /LOG+:G:\test.log /FP /XF *.lnk /XD DfsrPrivate [/Code] ich möchte eine Backup Script bauen aber die Ornder sollen vom User ausgewählt werden ? Meine Lösungsansatz. Ich werde mir 2 Variablen defnieren. Dann soll der User gefragt werden wo die Daten sind. Also werd ich mir mal den Read Host befehl noch genauer ansehn :) Die 2 Var baue ich dann in den robocopy befehl ein. Dann sollte es funktionieren ? Ist das so möglich ? Danke Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 z.b $var1 = read-host "Eingabe durch den Benutzer"sqltest # gib er ein #jetzt habe ich ja eine Variable im String Format wo die sqltest drinnen steht.[/Code] Wie kann ich das lösen das er überprüft ob es diesen Ordner gibt ? Also eigentlich über das ganze System scannen ? Edit: Kann ich das ganze mit einer Schleife lösen ? Also Sprich: Nach der benutzereingabe. Eine Schleife wo Test-path eingebaut ist ? Also test-path wirft ja nur eine Wert True oder Flase zurück. Bei meine Scirpt [Code]$var1= read-host "Eingabe"#gibt sqltest eintest-path -path $var1#True wird ausgeben ? aber was heißt das Ture ? [/Code] hab das jetzt nochmal probiert: [Code]$var2= red-host "eingabe"#gibt lol ein test-path -path $var2#Flase kommt zurück[/Code] Jetzt meine Frage kann die Powershell jetzt gleich dirket mit der $Var1 weiterarbeiten sprich nach dieser Test-path geschichte das ich Robocopy starte ? Reicht im das als check ob der Ornder vorhanden ist ? Danke nochmals :D Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 Wo soll dieser Ordner sein? Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 Der Ornder nach der Eingabe sollte sich im Benutzer Profil des User befinden. Bei der Eingabe von sqltest kommt ein Ture zurück, diesen Ordner gibt es auch unter C:\Benutzer\User1\sqltest ist das soweit richtig oder ist das nur Zufall ? Danke Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 Hallo lefg :) ich will die Powershell lernen und komplett verstehen :) vorallem möchte ich einfach die Powershell komplett Meistern :) Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 Hallo lefg :) ich will die Powershell lernen und komplett verstehen :) vorallem möchte ich einfach die Powershell komplett Meistern :) Ok Kamerad, dann weiss ich jetzt bescheid. Ich wünsche dir viel Erfolg, Du hast einen langen Weg vor dir. Ich werde das interessiert verfolgen. :) Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 Wenn du Powershell aufrufst bist du in deinem Profil unter "C:\Benutzer\User1". Wenn es den Ordner sqltest gibt ist das korrekt. Für test-path gibst du am besten einen kompletten Pfad an. Entweder der User tut dies oder du im Script. z.B. $var1 = $env:USERPROFILE + '\' + $var1 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 ....... hab das jetzt nochmal probiert: $var2= red-host "eingabe"#gibt lol ein test-path -path $var2#Flase kommt zurück[/Code] .... Ist da nicht ein Schreibfehler? red-host Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 Hallo Dukel also wenn ich z.B. $var1 = $env:USERPROFILE + '\' + $var1 das mache. Frage dazu: z.b eine User führt das Script auf seinen Rechner aus ist es dann immer automatisch auf den Pfad verwießen durch $env:USERPROFILE ? und dann vergleichst du auf die Variable ist das so richtig verstanden von meiner Seite her ? weiters habe ich gerade probiert: $src = "C:\sqltest1"copy-item -path $var1 $src[/Code] erkopiert mir den Ornder hin aber ohne Inhalt ? sieht aus als würde er den Ornder nur erstellen ? danke Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 Ist da nicht ein Schreibfehler? red-host ja das ist ein schreibfehler danke Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 Hast du dir mal die Parameter von copy-item angeschaut? Bei $var1 = $env:USERPROFILE + '\' + $var1 vergleiche ich nichts. Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 (bearbeitet) -recurse ist das Zauberwort :) Copy-Item -Path $var1 -Destination $src -Recurse kannst du mir kurz erklären was $var1 = $env:USERPROFILE + '\' + $var1 vorallem der schluss teil mit + '\' + $var1 ist mir unklar danke bearbeitet 22. März 2012 von schreckinger Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 22. März 2012 Melden Teilen Geschrieben 22. März 2012 Es kommt darauf an was der User eingeben soll. Wenn er den kompletten Pfad eingeben soll geht das mit Test-Path ohne Probleme. Wenn der User z.B. nur einen Ordner, der in seinem Profil liegt eingeben soll (wie in dem Beispiel "sqltest") muss der Anfang ja ergänzt werden. "$env:USERPROFILE" ist das Profil, daran wird (mit +) ein Backslash und danach den zu suchenden Ordner angehängt. Das ganze wird in der Variable $var1 neu geschrieben, die ja für das test-path da ist. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.