Zum Inhalt wechseln


Foto

Ordner Angabe durch User ?


  • Bitte melde dich an um zu Antworten
30 Antworten in diesem Thema

#1 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 08:27

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

#2 magman

magman

    Junior Member

  • 109 Beiträge

 

Geschrieben 22. März 2012 - 08:58

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

#3 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 09:20

Hallo danke erstmals ...


robocopy "Netzwerkpfad - Quelle" "Netzwerkpfad - Ziel" /MIR /LOG+:G:\test.log /FP /XF *.lnk /XD DfsrPrivate

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

#4 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 09:35

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.

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
$var1= read-host "Eingabe"
#gibt sqltest ein
test-path -path $var1#True wird ausgeben ? aber was heißt das Ture ? 


hab das jetzt nochmal probiert:
$var2= red-host "eingabe"
#gibt lol ein 
test-path -path $var2
#Flase kommt zurück


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

#5 Dukel

Dukel

    Board Veteran

  • 9.307 Beiträge

 

Geschrieben 22. März 2012 - 09:46

Wo soll dieser Ordner sein?

#6 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 10:01

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

#7 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 10:04

Hallo lefg :)

ich will die Powershell lernen und komplett verstehen :)


vorallem möchte ich einfach die Powershell komplett Meistern :)

#8 lefg

lefg

    Expert Member

  • 20.508 Beiträge

 

Geschrieben 22. März 2012 - 10:09

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. :)

Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

 

Diskutiere nicht mit ***en, denn sie ziehen dich auf ihr Niveau und schlagen dich dort mit Erfahrung! (Hab ich bei Tom abgeguckt)

 

Koinzidenz begründet keine Korrelation und ist kein Beweis für Kausalität. (Hab ich bei Daniel abgeguckt) https://de.wikipedia...rgo_propter_hoc

 

Absolutistischer“ Geschäftsführungs-Dogmatismus, der jedwede Empirie aus der „Werkstatt“ schlichtweg ignoriert , führt eben zumeist früher als später ….  (Hab ich von Klabautermann)


#9 Dukel

Dukel

    Board Veteran

  • 9.307 Beiträge

 

Geschrieben 22. März 2012 - 10:11

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

#10 lefg

lefg

    Expert Member

  • 20.508 Beiträge

 

Geschrieben 22. März 2012 - 10:16

.......

hab das jetzt nochmal probiert:

$var2= red-host "eingabe"
#gibt lol ein 
test-path -path $var2
#Flase kommt zurück
....


Ist da nicht ein Schreibfehler? red-host

Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

 

Diskutiere nicht mit ***en, denn sie ziehen dich auf ihr Niveau und schlagen dich dort mit Erfahrung! (Hab ich bei Tom abgeguckt)

 

Koinzidenz begründet keine Korrelation und ist kein Beweis für Kausalität. (Hab ich bei Daniel abgeguckt) https://de.wikipedia...rgo_propter_hoc

 

Absolutistischer“ Geschäftsführungs-Dogmatismus, der jedwede Empirie aus der „Werkstatt“ schlichtweg ignoriert , führt eben zumeist früher als später ….  (Hab ich von Klabautermann)


#11 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 10:18

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

erkopiert mir den Ornder hin aber ohne Inhalt ? sieht aus als würde er den Ornder nur erstellen ?

danke

#12 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 10:20

Ist da nicht ein Schreibfehler? red-host


ja das ist ein schreibfehler

danke

#13 Dukel

Dukel

    Board Veteran

  • 9.307 Beiträge

 

Geschrieben 22. März 2012 - 10:22

Hast du dir mal die Parameter von copy-item angeschaut?

Bei $var1 = $env:USERPROFILE + '\' + $var1 vergleiche ich nichts.

#14 schreckinger

schreckinger

    Junior Member

  • 73 Beiträge

 

Geschrieben 22. März 2012 - 10:28

-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, 22. März 2012 - 11:28.


#15 Dukel

Dukel

    Board Veteran

  • 9.307 Beiträge

 

Geschrieben 22. März 2012 - 12:43

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.