Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
schreckinger

Ordner Angabe durch User ?

Empfohlene Beiträge

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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 ein
test-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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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. :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
.......

 

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

-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 von schreckinger

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesen Inhalt zu abonnieren  

×