Powershell ordner erstellen/kopieren und inhalt bearbeiten

masl1234

Newbie
Registriert
Juli 2017
Beiträge
1
Hallo ich will mit der Powershell einen neuen Ordner Erstellen, einen alten Ordner in den Neuen Kopieren und die in den ini Dateien die absoluten Pfäde ändern. Da ich aber kaum Erfahrung in der Powershell habe wollte ich mal fragen wie es machen würdet.

Gedacht hat ich etwas in der Richtung:

Erstellen des Neuen Ordners:
New-Item "C\beispiel\beispiel\Neuer_Ordner" -ItemType directory

Zum kopieren:
Copy-Item C\beispiel\beispiel\Alter_Ordner\* C\beispiel\beispiel\Neuer_Ordner#

Zum bearbeiten der Ini files:
$inifiles = Get-ChildItem . *.ini -rec
foreach ($file in $inifiles)
{
(Get-Content $files.PSPath) |
Foreach-Object {$_ -replace "TeildesAltenPfades", "TeildesNeuenPfades"} |

Set-Content $file.PSPath

würdet ihr mein vorhaben anders lösen?
 
Nur mal nebenbei, sorry for off-topic.
Ich kann mir nicht helfen, powershell sieht irgendwie von der Synthax her Kacke aus, wenn man Unix shell gewohnt ist.
Da würde man das ungefähr so machen, ohne Tests und ungetestet.
Man kann auch perl -e an Stelle des sed (stream editor) verwenden und dann direkt in der Datei die Pfadsubstitution machen.

#! /bin/sh

OLDPATH=$1 # 1st argument from commandline
NEWPATH=$2 # 2nd argument from commandline

mkdir -p $NEWPATH
cd $NEWPATH || exit 1

for i in *.ini
do
echo ">>> modifying path in $i ..."
sed -e "s/$OLDPATH/$NEWPATH/g" $i > $i.new
mv $i $i.orig
mv $i.new $i
done
 
An sich nicht.

Du solltest allerdings bedenken, dass ohne den Parameter -Recursive bei Copy-Item nur die oberste Ebene kopiert wird (keine Dateien und Ordner in Unterordnern)

Zudem solltest du beim Einlesen und Schreiben von Dateien stets das -Encoding mitangeben, sonst gibt es bei Umlauten und Sonderzeichen ein Chaos. Standardmäßig verwendet PowerShell ANSI.
 
Zurück
Oben