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
Kommentar vom Moderator Biber am 02.08.2012 um 17:47:34 Uhr
Zitat von SarahL:
Beim Umbennen werden nur die ersten 8 Ziffern angezeigt ...
Set /a rgc +=1
#841

Frage Entwicklung Batch & Shell

GELÖST

Batch - Dateinamen mit Nutzereingabe in mehreren Ordnern ändern

Mitglied: SarahL

SarahL (Level 1) - Jetzt verbinden

02.08.2012, aktualisiert 13:31 Uhr, 3144 Aufrufe, 6 Kommentare

Guten Morgen alle zusammen,
ich stöbere schon seit mehreren Tagen in diesem Forum und treffe auf ganz ähnliche Probleme, wie ich sie zur Zeit habe. Ich habe schon selbst probiert eine Batch-Datei zu basteln, aber bislang schaff ich es nicht, dass der gewünschte Job erledigt wird. Hoffentlich könnt ihr mir weiterhelfen....

Zum eigentlichen Problem:
Ich habe vier verschiedene Ordner mit Dateien (pdf, doc, jpg, bmp, tiff)
die alle einen ähnlichen Aufbau haben:
eine acht-stellige Artikelnummer und ggf. noch einen Rest.
Bsp:
c:\bilder\45698234_Artikelfoto.jpg
c:\angebote\45698234 Angebot Firma_X.pdf
d:\katalog\45698234.jpg
usw...

(Insgesamt handelt es sich um ca. 25000 Dateien)

Viele Artikelnummern müssen nun durch eine neue achtstellige
Artikelnummern ersetzt werden, leider ohne ein bestimmtes System.
Deshalb suche ich nach eine Lösung die ungefähr so aussieht:

Benutzer gibt die alte Artikelnummer ein und
Dateien, welcher mit der alten Artikelnummer beginnen, werden in den vier Ordnern
gesucht, die ersten 8 Stellen des Dateinamens abgeschnitten
und anschliessend durch neue (durch den Nutzer einzugebende) 8 Ziffern ersetzt.
Der Rest des Dateinamens und die Endung soll beibehalten werden.

Ich freue mich auf eure Antworten
Falls ich meinen ersten Entwurf posten soll, bitte Bescheid geben.

Liebe Grüße

Sarah
Mitglied: bastla
02.08.2012 um 12:36 Uhr
Hallo SarahL und willkommen im Forum!
Falls ich meinen ersten Entwurf posten soll, bitte Bescheid geben.
Immer her damit ...

Grüße
bastla
Bitte warten ..
Mitglied: SarahL
02.08.2012, aktualisiert um 14:37 Uhr
Hi, super dass du dich meldest

Also soweit bin ich jetzt mit Schnippseln aus dem Forum gekommen,
wobei sich der Sinn vieler Sachen mir noch nicht erschließt:

01.
@echo off & setlocal enabledelayedexpansion 
02.
echo Alte Artikelnummer eingeben: 
03.
set /p altenr= 
04.
echo Neue Artikelnummer eingeben: 
05.
set /p neuenr= 
06.
 
07.
set "OrdnerTech=C:\Users\xxx\xxx\" 
08.
set /a Stellen=8 
09.
 
10.
if exist %OrdnerTech%\%altenr%*.* GOTO vorhanden 
11.
:vorhanden 
12.
 
13.
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerTech%\%altenr%*.*"') do ( 
14.
    set "Name=%%~ni" 
15.
    echo ren "%%i" "!Name:~,%Stellen%!%%~xi" 
16.
)
Noch nicht eingepflegt ist die neue Artikelnummer... ich weiss nicht wo die genau hin muss.
Jetzt würde hier der :vorhanden - Schritt 4 mal wiederholt, für jeden Ordner in den
geschaut werden muss, ob eine Datei vorhanden ist.
Was ich noch vergessen habe:
Bei 2 von den 4 Ordnern muss die Datei oder die Dateien in ein anderes Verzeichnis verschoben werden.
Bitte warten ..
Mitglied: bastla
02.08.2012 um 14:23 Uhr
Hallo SarahL!

Als Anhaltspunkt: Wenn 8 Stellen am Anfang eines Dateinamens wieder durch genau 8 Stellen ersetzt werden sollen, geht das direkt mit einem "ren":
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerTech%\%altenr%*.*"') do ren "%OrdnerTech%\%%i" "%neuenr%*.*"
Grüße
bastla

P.S.: "Code"-Formatierung ist hier beschrieben ...
Bitte warten ..
Mitglied: SarahL
02.08.2012 um 15:51 Uhr
Vielen Dank für deine schnelle Antwort.
Bin ein Stückchen weiter, jedoch gibt es noch nicht das gewünschte Ergebnis.

So sieht das Script (soll als .bat laufen) momentan aus:

01.
@echo off & setlocal enabledelayedexpansion 
02.
:eingabeneu 
03.
echo Alte Artikelnummer eingeben: 
04.
set /p altenr= 
05.
echo die ALTE Nummer lautet: %altenr% 
06.
echo NEUE Artikelnummer eingeben: 
07.
set /p neuenr= 
08.
echo die NEUE Nummer lautet: %neuenr% 
09.
echo Sind diese Angaben korrekt? ( j / n ) 
10.
set /p antwort= 
11.
if "ant"=="n" GOTO eingabeneu else GOTO umbennen 
12.
:umbennen 
13.
 
14.
set "OrdnerTech=S:\xxx\TechnischeDokumente" 
15.
set "OrdnerBild=S:\xxx\xxx\Bild" 
16.
set "OrdnerAng=S:\xxx\Angebote" 
17.
set "OrdnerKat=X:\xxx\Katalog" 
18.
set "OrdnerKatneu=X:\xxx\Katalogneu" 
19.
 
20.
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerTech%\%altenr%*.*"') do echo ren "%OrdnerTech%\%%i" "%neuenr%*.*" 
21.
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerBild%\%altenr%*.*"') do echo ren "%OrdnerBild%\%%i" "%neuenr%*.*" 
22.
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerAng%\%altenr%*.*"') do echo ren "%OrdnerAng%\%%i" "%neuenr%*.*" 
23.
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerKatneu%\%altenr%*.*"') do echo move "%OrdnerKatneu%\%%i" ""%OrdnerKatneu%%neuenr%*.*" 
24.
 
25.
pause 
26.
exit
Habe erstmal noch die Echos reingebastelt, bevor das ganze ausprobiere...

Das Ergebniss sieht leider so aus, dass der Pfad doppel angezeigt wird, also S:\xxx\TechnischeDokumente.123456789.jpgS:\xxx\TechnischeDokumente123456789.jpg
Beim Umbennen werden nur die ersten 8 Ziffern angezeigt und nicht die Endung, also _Angebot, etc. was noch dahinter geschrieben werden muss.
Aber ich spüre schonmal, dass die Lösung nicht mehr weit weg sein kann

Viele Grüße

Sarah
Bitte warten ..
Mitglied: bastla
02.08.2012, aktualisiert um 17:14 Uhr
Hallo SarahL!
Das Ergebniss sieht leider so aus, dass der Pfad doppel angezeigt wird
Sorry - das habe ich auch übersehen: Da Du ja "dir /s/b" verwendest, bekommst Du bereits vollständige Pfade geliefert, sodass das nochmalige Angeben des Ordners nicht nötig ist - daher einfach: ren "%%i" ...
Beim Umbennen werden nur die ersten 8 Ziffern angezeigt und nicht die Endung, also _Angebot, etc. was noch dahinter geschrieben werden muss.
Per "echo" lässt sich das leider auch nicht simulieren - Du kannst aber einfach mit
ren S:\xxx\Angebote\12345678_Angebot.doc 87654321*.*
durch Direkteingabe in CMD testen ...
Deine Zeile 23 ist mir allerdings nicht ganz klar - ist das eher so gemeint?
01.
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerKat%\%altenr%*.*"') do ( 
02.
    echo move "%%i" "%OrdnerKatneu%\" 
03.
    echo ren "%OrdnerKatneu%\%%~nxi" "%neuenr%*.*" 
04.
)
Grüße
bastla
Bitte warten ..
Mitglied: SarahL
29.08.2012 um 12:55 Uhr
Hallo nochmal,

ich wollte mich nochmal zurückmelden und habe eure Hilfe nicht vergessen .
Vielen Dank für die Tips.

Das fertige Script sieht nun so aus:

@echo off & setlocal enabledelayedexpansion 
echo Alte Artikelnummer eingeben: 
set /p altenr= 
echo NEUE Artikelnummer eingeben: 
set /p neuenr= 
 
set "OrdnerTech=S:\xxx\xxx\xxx\TechnischeDokumente" 
set "OrdnerBild=S:\xxx\xxx\xxxxx\asdf" 
set "OrdnerAng=S:\xxx\xxx\Angebote" 
set "OrdnerKat=X:\xxxxx\xxxxx\Bilder" 
set "OrdnerKatneu=X:\xxxx\xxxx\Bilder\neu" 
 
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerTech%\%altenr%*.*"') do ren "%%i" "%neuenr%*.*" 
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerBild%\%altenr%*.*"') do ren "%%i" "%neuenr%*.*" 
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerAng%\%altenr%*.*"') do ren "%%i" "%neuenr%*.*" 
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerKat%\%altenr%*.*"') do ( 
    xcopy "%%i" "%OrdnerKatneu%\" 
    ren "%OrdnerKatneu%\%%~nxi" "%neuenr%*.*" 
pause 
exit 
Alles funktioniert einwandfrei und erspart meinen Kollegen und mir eine Menge Arbeit.

Liebe Grüße

Sarah
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateiname über Batch ändern
gelöst Frage von c64b311ee9Batch & Shell6 Kommentare

Hallo liebe Community, folgendes Problem!: Ich habe einen Ordner mit 500 PDF Dateien. Diese sind nach folgendem Schema aufgebaut. ...

Batch & Shell
Dateinamen mehrere Dateien ändern mit batch oder vbs Skript
gelöst Frage von Doktore1Batch & Shell3 Kommentare

Hi frohes neues erstmal. Ich würde gerne alle Dateien in ein Ordner umbenennen. Und zwar ein Teil des Dateinamen. ...

Batch & Shell
Dateinamen mit Batch-Datei ändern - Problem
gelöst Frage von fffffuuuuuuuhhhhBatch & Shell9 Kommentare

Hallo zusammen, ich, stelle regelmäßig .mp3-Dateien her, die folgendermaßen von meinem Audioprogramm beschriftet wird: Das Ergebnis soll aber folgendermaßen ...

Batch & Shell
Teile eines Dateinamens ändern mit Batch Datei
gelöst Frage von fffffuuuuuuuhhhhBatch & Shell4 Kommentare

Hallo, ich, stelle regelmäßig .mp3-Dateien her, die folgendermaßen von meinem Audioprogramm beschriftet wird: Interpret - Titel _xxxxxx000.mp3 die x stehen für eine ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 12 StundenLinux1 Kommentar

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit24 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...