Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Dateien in Unterordnern ändern

Frage Entwicklung Batch & Shell

Mitglied: sowahr

sowahr (Level 1) - Jetzt verbinden

08.03.2011 um 18:22 Uhr, 3846 Aufrufe, 8 Kommentare

Hallo Ihr,

ich bin neu hier und ein Newbie was Batch und Shell angeht, deshalb sorry falls ich doofe Frage(n) stelle. Hoffe ihr könnt mir ein paar Tipps geben.

Hallo,

also mein Problem ist folgendes:
ich habe einen Oberordner A darin liegen wiederum versch. Unterordner in denen wieder versch. Dateien liegen. Die Batchdatei liegt im Oberordner.
Nun habe ich unter anderem das Problem dass durch ein vorangegangener Befehl meine Dateien in diesem Format:
diesisteinedatei.yyy.xxx
ausgegeben werden.
Ich möchte aber die Datei so:
diesisteinedatei.xxx
haben.

Nun habe ich ich schon folgende Batch-Scripte ausprbiert aber keins hat geholfen.
Direkt über die Shell hat dieser Befehl gegeht (wenn ich im Unterordner war):
01.
for %f in (*.xxx) do @for /f "delims=.yyy" %n in ('echo %f') do ren %f %n.xxx 
Für das springen in die Unterordner nutze ich
01.
 for /r %cd% %i in (*) do .... 
- das funktioniert hier aber mit diesem ren-Befehl nicht. Hier im Forum habe ich noch den Ausdruck
dir /b /a-d "%%i"
gefunden.
Aber dieser hilft nicht (tut sich gar nichts):
01.
for /d %f in (*.xxx) do @for /f "delims=.yyy" %n in ('dir /b "%f"') do echo ren %f %n.xxx 
Nutze ich
01.
 for /r %cd% %f in (*.xxx) do @for /f "delims=.yyy" %n in ('echo %~nf') do ren %~nf %n.xxx
direkt in der Shell, dann sagt mir die Shell: "das System kann die angegebene Datei nicht finden". Sucht also im Oberordner nach xxx-Datein, aber da dort keine sind können ja auch keine gefunden werden

Ich seh bestimmt den Wald vor lauter Bäumen nicht..
Kann mir wer evtl. einen Tipp geben? Das wäre echt toll!
Mitglied: pieh-ejdsch
08.03.2011 um 18:34 Uhr
moin sowahr,

da wäre der CMD-Liner (wenn sonst keine punkte im Dateinamen/Ordnernamen sind) etwa so:
01.
for /f "tokens=1-3 delims=." %i in ('dir /s /b "*.xxx"') do @echo ren "%i.%j.%k" "%~ni.%k"
das @echo zeigt Dir an was es tun würde. Wenn das @echo entfernt wird, tut es nur.

[Edit] fehlendes Hochkomma nachgezogen [/Edit]

Gruß Phil
Bitte warten ..
Mitglied: sowahr
10.03.2011 um 17:13 Uhr
Hallo Phil,

erstmal sorry das ich mich jetzt erst melde..
Wenn ich deinen Befehl in meinen Batch einfüge dann erscheint die Fehlermeldung
"delims." ist syntaktisch an dieser Stelle nicht verarbeitbar.

Bei
('dir ...) habe ich noch ein ' am Ende eingefügt. Ändert aber auch nichts daran dass es nicht geht.

Hab ich irgendwie ein " oder ' vergessen oder zuviel?
Die % habe ich schon verdoppelt im Batchscript.
Bitte warten ..
Mitglied: Biber
10.03.2011 um 18:42 Uhr
Moin sowahr,

eigentlich hast du nichts vergessen... sehen deine Dateinamenskonventionen wirklich so aus wie beschrieben?
pieh-ejdschens (von dir korrigierte) Zeile macht jedenfalls, was sie soll:

Demo/POC am CMD-Prompt:

(=18:37:10  D:\temp=) 
>echo x>testdatei.xxx.yyy 
 
(=18:37:36  D:\temp=) 
>echo x>testdatei.yyy.yyy 
 
(=18:38:04  D:\temp=) 
>for /f "tokens=1-3 delims=." %i in ('dir /s /b "*.yyy"') do @echo ren "%i.%j.%k" "%~ni.%k" 
ren "D:\temp\testdatei.xxx.yyy" "testdatei.yyy" 
ren "D:\temp\testdatei.yyy.yyy" "testdatei.yyy"
Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
10.03.2011 um 20:04 Uhr
moin,

das mit dem Vergessen holt mich doch immer wieder ein.
diesmal war es ein Hochkomma in der For Anweisung. (Immer nur diese dahergeschriebenen Zeilen tz tzz tzzz

Gruß Phil
Bitte warten ..
Mitglied: sowahr
11.03.2011 um 09:55 Uhr
Biber, ja sie sehen so aus wie geschrieben:
dateiname.xxx.yyy
wobei ich das xxx weg haben möchte.

Irgendwelche Ideen warum es bei mir nicht geht?
Kann ja nicht direkt mit dem xxx (ein nicht alltägliches Format) was zu tun haben oder doch?
Bitte warten ..
Mitglied: Biber
11.03.2011 um 10:47 Uhr
Moin sowahr,

tja, dann kann eigentlich nur ein unabsichtigt hineingekommenes Leerzeichen, ein Anführungszeichen zuwenig oder ein ähnlicher Flüchtigkeitsfehler, der dir beim guttenbergen passiert ist, die Ursache sein.

Magst du noch mal dein Skript in Codetags hier posten bitte?

Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
11.03.2011 um 12:30 Uhr
moin,

1. was bring Dir der dir als Ausgabe
dir /s /b "*.xxx" 
bzw. dieser Befehl ... 
dir /s /b "*.xxx*"
Direkt über die Shell hat dieser Befehl gegeht (wenn ich im Unterordner war): ...
2. bist Du denn mit der Batch auch schon in dem Unterordner?
Zur Umsetzung gibts der Möglichkeiten viele (eine kleine Auswahl):
  • Die Batch in das gewünschte Verzeichnis legen und starten
  • In der Batch: Vor der For-Schleife in das gewünschte Verzeichnis wechseln
pushD "D:\my folder with dubble extensions"
  • In der Batch: In der For Anweisung dem Befehl "dir" das Verzeichnis mitgeben (was aber nur mit /Subfolder Funktioniert)
for /f "tokens=1-3 delims=." %%i in ('dir /s /b "D:\my folder with dubble extensions\*.xxx"') do @echo ren "%%i.%%j.%%k" "%%~ni.%%k"
  • Zum drag and drop des Ordners auf die Batch - In der Batch: Vor der Forschleife den Ordner an PushD übergeben
if exist "%~1\" (pushd "%~1") else goto :eof
[Edit]
bei Verwenden des PushD auch das passende Gegenstück popD am Ende der Batch benutzen
[\Edit]

Gruß Phil
Bitte warten ..
Mitglied: sowahr
11.03.2011 um 13:09 Uhr
Dies hier:
01.
 for /f "tokens=1-3 delims=." %%i in ('dir /s /b "D:\my folder with dubble extensions\*.xxx"') do @echo ren "%%i.%%j.%%k" "%%~ni.%%k" 
hats direkt in der Shell gemacht(natürlich nur mit einem %, keinem doppelten)


Bzw. ich habe eben nochmal Phils ersten Code ausprobiert, da macht er es mir auch (in der Shell). MMhh keine Ahnung was ich gestern da falsch gemacht hatte (ich nehme aber an dass es an
unabsichtigt hineingekommenes Leerzeichen, ein Anführungszeichen zuwenig oder ein ähnlicher Flüchtigkeitsfehler,
gelegen hat..)

Werds jetzt noch in der batch ausprobieren. Wenns dort nicht geht werd ich mich nochmal melden- ansonsten markier ich diese Frage als gelöst

Danke euch beiden für die Mühe und Hilfe!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien aus unterordnern in Hauptverzeichniss zusammenführen (2)

Frage von sedada zum Thema Batch & Shell ...

VB for Applications
gelöst Wie mittels VBA beim Import von CSV dateien das Format aller Zellen auf "Zahl" ändern? (2)

Frage von Glibber4 zum Thema VB for Applications ...

Batch & Shell
gelöst XML-Datei: Pfade suchen, verlinkte Dateien kopieren und Pfade ändern (4)

Frage von ELEVATOR zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...