Jump to content
casi4712

Leerzeichen in EIngabedatei bei Schleife

Recommended Posts

Hallo allerseits,

ich habe mal eine ganz bescheidene Fraen an usere Experten hier. Ich versuche mehere Verzeichnisse in einer Batch regelmäßig zu sichern. Ich woltle es auf die elegante Weise machen, nach dem mir ezählt wurde nimm einfach eine Eingabe TXT-Datei für die Ordnernamen. Auszugsweise sieht das bei mir so aus:

 

@Echo Off


  FOR /D %%i IN (local.txt) DO ROBOCOPY "%USERPROFILE%\Appdata\Local\%%i" "%~dp0\set\profile\%USERNAME%\Appdata\Local\%%i" /PURGE /B /E /R:0 /ZB>nul 2>&1
  FOR /D %%j IN (roaming.txt) DO ROBOCOPY "%USERPROFILE%\Appdata\roaming\%%j" "%~dp0\set\profile\%USERNAME%\Appdata\roaming\%%j" /PURGE /B /E /R:0 /ZB>nul 2>&1
  FOR /D %%t IN (profil.txt) DO ROBOCOPY "%USERPROFILE%\%%t" "%~dp0\set\profile\%USERNAME%\%%t" /PURGE /B /E /R:0 /ZB>nul 2>&1

Als Eingabe datei steht in der roaming.txt zB:

GOOGLE
Network ADB
High Resolution Enteprise

Dies funktioniert auch wunderbar, nur dort wo Leerzeichen sind geht es nicht, wenn ich die Namen in "" schreibe geht es auch nicht. Wie muss es denn heissen?


Danke i.V.


Gruss

chris

Share this post


Link to post
Share on other sites

Hi,

 

ggfs. wärst du mit einer Lösung wie Veeam Endpoint Backup (oder ggfs. einer Erweiterung eurere Datensicherungslösung) besser und einfacher dran.

 

Gruß

Jan

Share this post


Link to post
Share on other sites

Moin,

 

FOR-Schleifen sind immer eine Sache für sich. Da muss man enorm viel rumprobieren, bis man mal die richtige Variante hat. Um hier nicht gleich mit der Lern-mal-PowerShell-Keule zu arbeiten, werfe ich folgendes Verfahren in den Ring, das ich bei "statischen Schleifen" gern einsetze:

 

[Excel: Admins unbekannter Liebling | faq-o-matic.net]
https://www.faq-o-matic.net/2008/01/19/excel-admins-unbekannter-liebling/

 

Ansonsten haben die Kollegen schon recht - gerade für sowas ist PowerShell nach etwas Einarbeitung viel einfacher und flexibler.

 

Gruß, Nils

Share this post


Link to post
Share on other sites
vor einer Stunde schrieb casi4712:

Da brauch ich kein Powershell, auch wenns mächtig sein mag, sind mir zuviel geschweifte Klammern drin lach

Na ma kukn wer zuletzt lacht.  ;-)  ... irgendwann kommst Du an die Grenze, über die Du mit CMD nicht drüber kommst.  :aetsch2:

Share this post


Link to post
Share on other sites

Hmmm  ... ich weiß ja nicht, warum Du Dich so gegen die deutlich modernere Technologie sträubst, aber ich fürchte, Du hast den eigentlichen Vorteil von Powershell noch nicht erkannt.

 

Der wirklich nutzbringende Mehrwert von Powershell ist eigentlich gar nicht die "Power", die die Shell gegenüber CMD/Batch hat, sondern die sehr sehr viel flachere Lernkurve. Die Powershell ist nicht für Programmierer gemacht, sondern für Administratoren. Gerade für solche - nicht abfällig gemeint - Pille-Palle-Aufgaben wie hier in diesem Thread, brauchst Du keine krude gehirnverrenkende Syntax aus dem letzten Jahrtausend beherrschen. Die Grund-Idee von Powershell hast Du Dir innerhalb einer halben Stunde draufgeschafft und von da an geht es nur noch steil bergauf. ;-)  Jeder, der ansatzweise der englishen Sprache mächtig ist, kann auch ohne langes Studium die Syntax von Powershell sehr einfach verstehen.

 

Und wenn man dann erstmal die Grundlagen drauf hat, dann geht der Spaß erst richtig los, weil man sich jetzt mit der gleichen einfachen Syntax die richtig kniffligen Aufgaben vornehmen kann. Und nicht zuletzt bekommt man bei Problemen mit Powershell-Code schneller und mehr und meistens auch bessere Hilfe, weil sich auch viel mehr Menschen damit beschäftigen und sich mehr damit auskennen.

Edited by BOfH_666

Share this post


Link to post
Share on other sites

Ich hab in Powershell eine Software für das Management von Projekten geschrieben. Unterschätze nicht das was du nicht kennst :) Ich stimme Olaf zu und kann es Dir auch nur ans Herz legen.

Share this post


Link to post
Share on other sites

Um bei Deiner Analogie zu bleiben: Ein geübter Holzfäller schafft es ganz leicht, sich mit seiner frisch geschärften Axt ein Brötchen zu schmieren. Schaffst Du es, mit einem Brotmesser einen Baum zu fällen?  ;-) :D 

foreach ($Element in (Get-Content -Path .\local.txt)){
    robocopy "$ENV:USERPROFILE\AppData\Local\$Element" "$PSScriptRoot\set\profile\$ENV:USERNAME\AppData\Local\$Element" /PURGE /B /E /R:0 /ZB>nul 2>&1
}

Die Powershell ist am Ende des Tages ja trotzdem immernoch eine normale Shell und für einfache Aufgaben sind die Unterschiede zwischen den Shells nicht soo groß. Der Punkt - für mich - ist, dass die CMD/Batch bei komplexeren Aufgaben schnell kryptisch wird und an quasi unüberwindbare Grenzen stößt, wo die Powershell eben weitergeht.

 

Aber so lange Du mit CMD/Batch zufrieden bist und zum Ziel kommst, kannst Du es ja auch weiter nutzen. MS wird Dir vermutlich keine Steine in den Weg legen.

vor 2 Stunden schrieb casi4712:

PS: Mit der halben h bist du Dir sicher?

Ich glaube, dass ICH Dir die Grundlagen in einer halben Stunde vermitteln könnte. ;-)

Edited by BOfH_666

Share this post


Link to post
Share on other sites
vor einer Stunde schrieb casi4712:

ich fänds schade wenn MS die CMD wirklicj aus seinem Betriebssystem rausnehmen sollte,

 

Woher kommt das? Warum sollte MS das machen, was sollte es einbringen?

Share this post


Link to post
Share on other sites
vor 2 Stunden schrieb casi4712:

ich fänds schade wenn MS die CMD wirklicj aus seinem Betriebssystem rausnehmen sollte,

Ich denke auch, dass das nicht passieren wird und es ist auch nicht angekündigt oder so.

 

Es hat aber niemand behauptet, dass der Code für Powershell kürzer wäre. Es ist sogar meistens eher das Gegenteil. Und das Meiste an diesem Beispiel ist der robocopy-Befehl und der muss ja in beiden Versionen quasi gleich sein. Durch die ausführlicheren Befehle ist der Powershell-Code aber für Menschen auch einfacher zu lesen und zu verstehen. Bei einem Befehl "Get-Content" oder "Get-Process" oder "Get-Service" braucht niemand raten, was die Befehle wohl machen könnten. ;-) Bei  CMD/Batch-Befehlen die nur 2 Buchstaben lang sind, ist das schon ein bissl kniffliger. Und wenn es dann mit Optionen und Schaltern weitergeht, hat man meistens nur noch einen Buchstaben und Sonderzeichen machen es auch nicht besser ...  also z.B. "/D %%t"  ... wenn DU ehrlich bist, musst Du zugeben, dass das alles andere als intuitiv und verständlich ist - wenigstens am Anfang. ;-) 

Edited by BOfH_666

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Werbepartner:



×
×
  • Create New...