Ich habe generell nichts gegen die Powershell, habe aber davon keine Ahnung.
Macht nix, hatte ich auch nicht - bis ich "mußte" ;o)
Gibt es da denn auch eine Stapelverarbeitung, und mit welcher Endung müsste ich die entsprechende Datei speichern?
Klar. Stapelverarbeitung geht wie bei Batch. Dateiendung "
.ps1", also z.B. "Ersetze.ps1". Eigentlich ähnlich zu DOS/CMD (ok, mit ein paar Besonderheiten).
Ausführen im Explorer mit Rechtsklick - "Mit PowerShell ausführen".
In der Powershell selbst ausführen mit vollständiger Pfadangabe
C:\Verzeichnis\ersetze.ps1
bzw. im aktuellen Verzeichnis erfolgt der Aufruf mit
.\ersetze.ps1
(man beachte den "Punkt-Backslash", siehe Ähnlichkeit zu Unix/Linux-Shells)
Testweise habe ich die Powershell installiert, bin beim Testen deines Codes aber schon daran gescheitert, dass ich deinen Code ja nicht direkt vom Browser rüber kopieren konnte und manuell die Zeichen | und $_ nicht erzeugen konnte...sorry dafür.
Versteh ich nicht... Geht doch problemlos zu kopieren und mit Rechtsklick einzufügen?
(Tipp am Rande: Im Systemmenü des Powershell-Fensters - genau wie bei CMD-Shell-Fenstern - unter Eigenschaften den "Quick-Edit-Modus" einschalten, dann kann man schnell mit Maus markieren/kopieren/einfügen)
Zur Zeicheneingabe: Das | ("Pipe") ist AltGr + <
Aber sag jetzt nicht, du kriegst kein Dollar und Unterstrich hin... ;o)
Ausserdem habe ich nicht verstanden, welche deiner Vorschläge ich wie kombinieren kann / soll.
Naja, Beispiel 1 und 2 sind genau das gleiche, nur ist Beispiel 2 für Schreibfaule ;o)
Fast alle PS-Befehle (sog. "cmdlets") haben neben den "sprechenden" Bezeichnungen auch Kurzformen (aliase), oft auch aus der alten DOS-Welt oder Unix/Linux.
Beispiele:
% ist die Abkürzung von foreach-object
Get-content = gc = type = cat
Get-Childitem = gci = dir = ls
(für jeden was dabei)
Hilfe mit "get-help" oder "help" oder "man", z.B. "man dir"
Beispiel 3 (mit reg. Ausdruck) wäre wohl am besten, da du dort die zu ersetzende Zahl nicht angeben brauchst. Also egal ob in der Ausgangsdatei "sleep 200" oder "sleep 500" steht, es wird immer durch den neuen Wert "
sleep 400" ersetzt.
(hmm, man könnte auch gleich ein Prozedur-Script mit Parameterübergabe basteln, aber so weit gehen wir jetzt nicht...)
Noch ein Hinweis: Besser vielleicht, die Dateiangaben mit Pfad zu machen, gleiches Prinzip wie in Batches, wenn Leerzeichen drin, dann in Anf.zeichen einschließen, also (gc "X:\Neuer Ordner\aktuell.lec2") usw.
Abgesehen davon finde ich die VB-Script-Variante in dem Link zum Technet-Scripting auch recht passabel. Eigentlich mit wenig Aufwand machbar/durchschaubar.
mfg, Massaraksch