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 Daten an Dateinamen anhängen

Mitglied: Sodele

Sodele (Level 1) - Jetzt verbinden

09.08.2011 um 06:19 Uhr, 3146 Aufrufe, 3 Kommentare

Wie kann ich es schaffen, dass in einem Textfile ausgegebene Berechnungen von mehreren Dateien jeweils an deren Filenamen angehängt werden?

Guten Morgen zusammen. Leider habe ich mal wieder ein Problem, bei dem ich nicht weiter weiß und auf eure Hilfe hoffe.

Derzeit sieht mein Code so aus:

01.
@echo off 
02.
 
03.
REM +++ Hole anzuhängende Daten aus Textfile 
04.
set /p "x="<"temp\test.txt" 
05.
 
06.
REM +++ Hänge Inhalt der test.txt an Dateinamen an 
07.
for %%a in (*.zip) do copy %%a "%%~na_%x%.zip" 
08.
 
09.
PAUSE
Dieser Code funktioniert nur leider logischerweise nur bei einer einzigen Datei im selben Ordner, da set /p "x="<"temp\test.txt" ja nur die erste Zeile ausliest. Ich würde die Umbenennung aber gern für alle zip-Dateien in diesem Ordner in einem Rutsch machen,.

Die zugehörige test.txt sieht einfach so aus (bei angenommenen 3 verschiedenen zip-Dateien).:

3797B8435
3476C44Z8
B489ZJ983


Theoretisch wäre es aber kein Problem das Berechnungsprogramm eine Ausgabe zusammen mit den Dateinamen wie folgt (vielleicht sogar mit zusätzlichem Trennzeichen, müsste ich mal schauen) machen zu lassen, wenn das mehr nützt (für die Zuordnung, aber das sollte eigentlich kein Problem sein, da das andere Programm ja auch nach den Dateinamen abarbeitet und die Werte in das Testfile schreibt):

Dateiname1.zip 3797B8435
Datei22.zip3476C44Z8
DateiNr13.zip B489ZJ983

Da die Länge des Dateinamens variiert, habe ich deshalb in meinen bisherigen Versuchen darauf verzichtet, aber vielleicht liegt die Lösung doch im zusätzlichen Import und Abgleich der Dateinamen? Hat irgendwer noch eine Idee, wo ich ansetzen könnte?

Danke schonmal im voraus.
Mitglied: Skyemugen
09.08.2011 um 07:58 Uhr
Aloha,

Danke schonmal im voraus.
... wollen wir hier nicht mehr lesen ...

Also dein voranstehendes Programm berechnet für jeweils eine Datei diesen Wert? Dann ist für mich banane, dass du diese erst in ein Textfile schreibst und dann widerum erneut Schleifen laufen lassen willst, um die Dateien, die bereits vorher angefasst werden, umzubenennen.

Ich meine:

Programm X nimmt Datei A aus %%i (wahrscheinlich), nimmt sich wasauchimmeresfürdieBerechnungbenötigt berechnet den Wert und ren oder von mir aus auch copy wie oben angegeben dann %%i zu %%~ni_%Berechnungsergebnis%%%~xi
Wäre natürlich gut zu wissen, was Programm X batch? 3rd-party-tool? ist und wie du es im bisherigen Verlauf einsetzt.

Oder wie sehe ich das? Wäre für mich der logischste und direkteste Weg.

greetz André

P.S.:
Variante 1 für Dateinamen ohne Leerzeichen | Liste à la Dateiname1.zip 3797B8435
01.
@echo off & setlocal 
02.
set "Pfad=E:\Skripte\Ablage\Temp" 
03.
set "LOG=%Pfad%\test.txt" 
04.
pushd "%Pfad%" 
05.
for %%s in (*.zip) do ( 
06.
	for /f "tokens=2" %%m in ('findstr "%%s" "%LOG%"') do ( 
07.
	ren "%%s" "%%~ns_%%m%%~xs" 
08.
09.
10.
popd 
11.
pause 
12.
goto :eof
Variante 2 für Dateinamen mit Leerzeichen | Liste à la Dateiname 1.zip 3797B8435
01.
@echo off & setlocal 
02.
set "Pfad=E:\Skripte\Ablage\Temp" 
03.
set "LOG=%Pfad%\test.txt" 
04.
pushd "%Pfad%" 
05.
for %%s in (*.zip) do ( 
06.
	for /f "delims=" %%m in ('findstr /c:"%%s" "%LOG%"') do call :Ablauf "%%s" "%%m" 
07.
08.
popd 
09.
pause 
10.
goto :eof 
11.
 
12.
:Ablauf 
13.
set "Name=%~1 " 
14.
set "Zeile=%~2" 
15.
call set "replace=%%Zeile:%Name%=%%" 
16.
ren %1 "%~n1_%replace%%~x1" 
17.
goto :eof
P.P.S.: Erst einmal frühstücken ;D
Bitte warten ..
Mitglied: bastla
09.08.2011 um 08:51 Uhr
Hallo Sodele und Skyemugen!

Grundsätzlich schließe ich mich Skyemugen an - die direkte Verarbeitung wäre sicherlich der sinnvollste Weg ...

... ansonsten aber ist die Variante mit der Liste inkl Dateinamen auf jeden Fall besser (wobei die Reihenfolge "Hashwert Leerzeichen Dateiname" lauten sollte), denn dann kann mit einem "findstr" der Wert der jeweiligen Datei gesucht werden - etwa:
for %%i in (*.zip) do for /f %%a in ('findstr /e /c:"%%~nxi" "temp\test.txt"') do ren "%%i" "%%~ni%%a%%~xi"
Da die bereits umbenannten Dateien in der Liste nicht mehr gefunden werden, könnte der Batch bei Bedarf auch mehrmals laufen ...

Grüße
bastla
Bitte warten ..
Mitglied: Sodele
09.08.2011 um 17:15 Uhr
Vielen Dank für eure Hilfe.

Bastla hat es bereits erkannt, für's erste ging es nur um das Anhängen eines Hashwertes. Da man das Rad ja nicht gleich neu erfinden muss, hole ich ihn mir derzeit über jacksum. Ein direktes Anhängen habe ich bisher noch nicht geschafft (falls wer eine Möglichkeit dafür kennt, nur zu)., aber mir ging es hierbei auch mehr darum das Prinzip zu verstehen, wie ich verschiedene Daten eben an verschiedene Dateien anhängen kann, unabhängig davon, welches Programm (z.B. Datenbanken wie ACESS oder SQl oder nur einfache Tabellen wie Excel) mir so ein Texttile liefert, denn das ist für einen Batchlaien einfach leichter zu erstellen (und bei einer Menge an Files auch übersichtlicher vor so einer Massenumbenennung schnell noch zu überprüfen), als sich in jedes der Programme so hineinarbeiten zu müssen, um genau die Werte an den Dateinamen anhängen zu können, die man eben haben möchte.

Dass copy nicht dasselbe wie ren ist, ist mir außerdem klar. Für meine Testläufe wollte ich nur die Originaldateien noch erhalten, falls was schiefläuft. Ich würde das auf jeden Fall zum Schluss durch rename ersetzen.
Bitte warten ..
Ähnliche Inhalte
Windows Server
Dateiname zu lang
gelöst Frage von nooneelsebutmeWindows Server3 Kommentare

Hallo, habe Daten von einem Server 2008 R2 auf einen Server 2016 ES per robocopy migriert. Hat alles Problemlos ...

Windows Server
Korrektur von Dateinamen
gelöst Frage von petereWindows Server2 Kommentare

Hallo, ich habe eine Unmenge an Dateien bekommen, die ungültige Zeichen im Dateinamen haben (z.B. +, sonst ist mir ...

Batch & Shell

Finden von (fast) gleichen Dateinamen, Ändern von Dateinamen

gelöst Frage von internet2107Batch & Shell8 Kommentare

Ich habe leider mal wieder eine etwas knifflige Sache. Aktuell suche ich in Verzeichnissen nach Dateien mit gleichen Namen ...

E-Mail

Gmail Konto alle Anhänge herunterladen

Frage von WPFORGEE-Mail2 Kommentare

Hallo, ich habe seit mehreren Jahren ein privates Gmailkonto. Ich lösche generell keine Emails, sondern belasse diese dort. Dementsprechend ...

Neue Wissensbeiträge
Windows Server

SBS 2011: Installation von KB4457144 schlägt beim Reboot fehl - Von Dienst gesperrte Schriftart ursächlich

Tipp von the-buccaneer vor 2 StundenWindows Server

Moinsen zusammen! Das hat mich einige graue Haare gekostet: Ein SBS 2011 weigerte sich schon im August, das monatl. ...

Windows Netzwerk
Browser-Lags und IPv6
Erfahrungsbericht von NixVerstehen vor 8 StundenWindows Netzwerk1 Kommentar

Hallo zusammen, wir betreiben als kleines Speditionsunternehmen ein überschaubares Windows-Netzwerk mit Win10-Clients sowie einem Server 2016 Essentials als "eierlegende ...

Humor (lol)

Erstaunlich, Windows mit extremer Laufzeit (Server) lol

Tipp von mathu vor 10 StundenHumor (lol)5 Kommentare

Was es so alles gibt. :-)

Windows Netzwerk

CGM Praxisarchiv funktioniert auf Clients nach Update auf 4.14 nicht mehr

Tipp von MOS6581 vor 1 TagWindows Netzwerk

Moin, ein Kunde setzt das CGM-Praxisarchiv ein. Mehrplatzinstallation mit SQL-Server. Nachdem letzte Woche auf die 4.14 aktualisiert wurde, funktionierte ...

Heiß diskutierte Inhalte
Hyper-V
Windows Serer 2016 Standard virtualisieren
gelöst Frage von fritte87Hyper-V33 Kommentare

Hallo zusammen, ich muss für eine kleine Firma ein entsprechendes neues kleines Konzept bauen. Ich habe einen Server Standard ...

LAN, WAN, Wireless
Kombiniere mehrere 4G Router zu einem Netzwerk - Anwendung kleine LAN (10-20 Leute)
Frage von HulkTheHeroLAN, WAN, Wireless24 Kommentare

Guten Mittag liebes Administrator - Fourm, ich hoffe ich habe das richtige Thema ausgewählt - ansonsten bitte gerne verschieben ...

Windows Server
Fileserver von 2012 R2 auf 2012R2
gelöst Frage von ThabeusWindows Server23 Kommentare

Moin moin, leider war in der Vergangenheit der Fokus des Betriebs nicht auf Langfristigkeit ausgelegt. Daher stehe ich jetzt ...

Router & Routing
Größere Zahl VPN-Verbindungen mit Fritz-Box einrichten
Frage von miscmikeRouter & Routing15 Kommentare

Hallo Zusammen, ich supporte verschiedene Kunden mit bestehenden LAN-LAN-Kopplungen via FritzBox (7490, FritzOS 7.01) . Anwendungen sind z.B. Kaspersky-KSC ...