Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell: Script läuft nur im Arbeitsverzeichnis

Mitglied: AnkhMorpork

AnkhMorpork (Level 2) - Jetzt verbinden

20.12.2013, aktualisiert 21.12.2013, 1999 Aufrufe, 12 Kommentare, 1 Danke

Hallo zusammen,

habe folgendes Script am Laufen (Dateien umbenennen):

01.
$Quelle="D:\Scripts\Test_RenFile\" 
02.
$BasicName="Datei_" 
03.
$Extension=".txt" 
04.
$i=0 
05.
 
06.
$Dateien = Get-ChildItem -path $Quelle *.txt 
07.
foreach($Datei in $Dateien) { 
08.
	$i++ 
09.
	$AktuellerName=$BasicName+"{0:000}" -f $i+$Extension  
10.
	Rename-Item -Path $Datei -NewName $AktuellerName    
11.
}
Das Script läuft korrekt durch - aber nur wenn es sich im selben Verzeichnis befindet, wie die Dateien, die umbenannt werden sollen.
Gibt es eine Möglichkeit, das auch aus einem anderen Verzeichnis anzustoßen?

Ist vielleicht trivial, aber mein Verhältnis zur PS ist noch sehr novizial.
Win 7 Pro 64 bit, PS 3.0

Gruß an alle

ANKH
Mitglied: Xaero1982
20.12.2013 um 18:58 Uhr
Nabend,

01.
Rename-Item -Path $quelle""$Datei -NewName $AktuellerName   
Die Zeile damit ersetzen und dann sollte es gehen.

Gruß
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.12.2013, aktualisiert 21.12.2013
Hallo ANKH,
so geht des:
01.
$Quelle="D:\Scripts\Test_RenFile" 
02.
$BasicName="Datei_" 
03.
$i=0 
04.
$Dateien = Get-ChildItem -path "$Quelle\*.txt" -File 
05.
foreach($Datei in $Dateien) { 
06.
	$i++ 
07.
	$AktuellerName=$BasicName+"{0:000}" -f $i+$Datei.Extension  
08.
	Rename-Item -Path $Datei.Fullname -NewName $AktuellerName    
09.
}
$Datei.Fullname ist der volle Pfad zur Datei. Alternativ kannst du die Rename-Zeile auch so schreiben(ohne -path Parameter nur mit Übergabe des File-Objects):
Rename-Item $Datei -NewName $AktuellerName
Der Parameter -File bei Get-Childitem beschränkt die Rückgabe nur auf Dateien, es könnte ja ein Ordner z.B. Ordner.txt benannt sein, dieser würde dann fälschlich mit umbenannt werden (Achtung: Dieser Parameter funktioniert erst ab Powershell 3.0). Das Äquivalent dazu lautet:
$Dateien = Get-ChildItem -path "$Quelle\*.txt" | ?{!$_.PSIsContainer}
Grüße Uwe
Bitte warten ..
Mitglied: Xaero1982
20.12.2013 um 19:14 Uhr
Moin,

also zumindest unter Powershell v2 frisst er die Zeile nicht
01.
$Dateien = Get-ChildItem -path "$Quelle*.txt" -File 
Liegt an den " " und dem -File was er nicht kennt. Vielleicht ist es ja in der 3.0 anders. Installiere ich mal ...

Gruß
Bitte warten ..
Mitglied: colinardo
20.12.2013, aktualisiert um 19:21 Uhr
Zitat von Xaero1982:
Liegt an den " " und dem -File was er nicht kennt. Vielleicht ist es ja in der 3.0 anders. Installiere ich mal ...
Ja den Parameter kennt nur nur Powershell 3.0
alternative für Powershell 2.0:
$Dateien = Get-ChildItem -path "$Quelle\*.txt" | ?{!$_.PSIsContainer}
Bitte warten ..
Mitglied: Xaero1982
20.12.2013 um 19:18 Uhr
Okay. Na dann spar ich mir die Installation.

Gruß
Bitte warten ..
Mitglied: AnkhMorpork
20.12.2013 um 19:23 Uhr
Hallo Uwe,

wieder einmal Dank für deine Hilfe!

Werde das probieren - habe aber im Moment keinen Zugriff auf mein Script. Ich melde mich!

Gruß

ANKH
Bitte warten ..
Mitglied: AnkhMorpork
20.12.2013, aktualisiert um 19:31 Uhr
Hallo Xaero,

Test läuft ...demnächst ... Dank!

Gruß

ANKH

Edit: zu spät ...
Bitte warten ..
Mitglied: colinardo
20.12.2013, aktualisiert um 20:33 Uhr
Zitat von Xaero1982:
Rename-Item -Path $quelle""$Datei -NewName $AktuellerName
dann kannst du's auch direkt so schreiben:
Rename-Item -Path $quelle$Datei -NewName $AktuellerName  
Bitte warten ..
Mitglied: AnkhMorpork
20.12.2013 um 19:39 Uhr
Leute, you are klasse !!!

nur mal so ...

Gruß

ANKH
Bitte warten ..
Mitglied: Xaero1982
20.12.2013, aktualisiert um 20:07 Uhr
Mit der Powershell 2.0 funktioniert das wie ich es oben schrieb. MIt den "$variable" kommt er nicht klar, weil er das nicht als Variable erkennt. Daher klappt das da nicht. Wie das bei der 3.0 ist weiß ich nicht.

Stimm ich dir aber zu, dass deine Version die schönere ist

Gruß
Bitte warten ..
Mitglied: colinardo
20.12.2013, aktualisiert um 20:34 Uhr
Zitat von Xaero1982:
MIt den "$variable" kommt er nicht klar, weil er das
Das geht auch in Powershell 2.0, innerhalb von doppelten Anführungszeichen werden Variablen expandiert, wohingegen bei Benutzung von einfachen => '$Variable' keine Expansion stattfindet!
Will man auf eine Eigenschaft eines Objektes innerhalb von doppelten Anführungszeichen zugreifen muss man folgende Variante hernehmen:
"$($Variable.Eigenschaft)"
Probier mal dieses Beispiel:
01.
$Name = "Mustermann" 
02.
echo "Max $Name"
Das geht 100% in PS2.0

Uwe

p.s. denke jetzt ist alles geklärt
Beitrag dann noch auf gelöst setzen.
Bitte warten ..
Mitglied: AnkhMorpork
21.12.2013 um 14:18 Uhr
Hallo,

vielen Dank an euch. Wieder was dazugelernt. Ich arbeite weiter ...
Wie Scripting Guy Ed Wilson sinngemäß sagte: Es ist leicht Powershell zu lernen, aber nahezu unmöglich, sie zu beherrschen.

In diesem Sinne ...

ANKH
Bitte warten ..
Ähnliche Inhalte
Windows Server

Powershell Script in Script ausführen

Frage von diematrix125Windows Server2 Kommentare

Hallo! Ich habe hier momentan zwei verschiedene Skripte: 1. Skript zum Erstellen von Usern 2. Skript zum Erstellen der ...

Batch & Shell

Script in Powershell

gelöst Frage von EverestBatch & Shell27 Kommentare

Hallo PS-Scriptler, hat jemand von euch ein Script, der bestimmte User (z.B. administrator) in der Domain ausließt, welcher angibt ...

Windows Netzwerk

Script läuft nicht auf Computer GPO

gelöst Frage von cyborg19Windows Netzwerk

Hallo zusammen Ich habe ein Computer GPO erstellt. Über diesen GPO werden die Druckerverteilt. Das funktioniert auch wunderbar. Zusätzlich ...

Windows Server

Ps1 Script lauft nicht

gelöst Frage von 131455Windows Server8 Kommentare

Hallo, führe ich Zeilen wie würde die eben als Aufgabenplanung gerne hinterlegen. Gruss Rainer

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 7 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 16 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...