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

Frage Entwicklung Batch & Shell

GELÖST

Batch - TXT-Datei zeilenweise auslesen - und - eine Datei entsprechend umbenennen und kopieren

Mitglied: Stargrove

Stargrove (Level 1) - Jetzt verbinden

08.10.2010, aktualisiert 17:14 Uhr, 9696 Aufrufe, 2 Kommentare

Da ich ein absoluter Laie auf diesem Gebiet bin, hoffe ich auf eure Hilfe und bin für eine Lösung sehr dankbar

Meine Versuche sollen nur zur Verdeutlichung dienen und müssen nicht übernommen werden.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - Zur Vereinfachung nehme ich folgendes Beispiel:

Datei = bild.jpg (oder test.xls, oder wichtig.doc …)
Liste = liste.txt

- - - - - Inhalt der Liste (ändert sich häufig und ist auch länger)

Frank Maurer
Peter Müller
Für unseren lieben Fritz

- - - - - Ich möchte, dass die Datei (in einen existierenden Ordner) kopiert
- - - - - und
- - - - - nach der Liste umbenannt wird (für jede Zeile ein Dateiname mit gleichem Inhalt).

- - - - - Es soll am Ende so aussehen

Frank Maurer.jpg
Peter Müller.jpg
Für unseren lieben Fritz.jpg


- - - - - Habe es so versucht:

FOR /f %%f IN (liste.txt) DO copy bild.jpg neu\%%f

1. Problem - es wird nur das erste Wort pro Zeile benutzt (Problem Leerzeichen).

2. Problem - die Endung fehlt (.jpg).

3. Problem - aus den Umlauten werden wirre Zeichen.


- - - - - Hier habe ich einen guten Ansatz / Lösung gefunden

http://www.administrator.de/index.php?content=19980

- - - - - Das habe ich daraus zusammengebastelt.
- - - - - Ist aber noch nicht das Gelbe vom Ei, es fehlt das Ende für die Schleife.
01.
  
02.
	set /a "n=1" 
03.
	:start 
04.
	:: n-te Zeile in %var% speichern; n ist im Beispiel 3 
05.
	Set /a "cnt=1" 
06.
	rem Set /a "n=3" 
07.
	for /F "Tokens=*" %%i in (list.txt) do call :setvarFixLine %n% "%%i"  
08.
	Echo n-te Zeile, n=%n%: [%Var%] 
09.
	copy Bild.jpg neu\"%var%.jpg" 
10.
	set /a "n=n+1" 
11.
	goto :start 
12.
 
13.
	:setvarFixLine 
14.
	If %cnt%==%1 Set "Var=%~2" 
15.
	Set /a "cnt+=1"  
16.
	goto :eof
Mitglied: bastla
08.10.2010 um 17:33 Uhr
Hallo Stargrove und willkommen im Forum!

Versuch es damit:
01.
@echo off & setlocal 
02.
set "Datei=D:\bild.jpg" 
03.
set "Liste=D:\Liste.txt" 
04.
set "Ziel=D:\Neu" 
05.
 
06.
chcp 1252 >nul 
07.
md "%Ziel%" 2>nul 
08.
for /f "usebackq delims=" %%i in ("%Liste%") do copy "%Datei%" "%Ziel%\%%i.*" >nul
  • "chcp 1252" wechselt auf eine für die Umlaute passende "Codepage".
  • Auch wenn der Ordner schon existiert, ist die Zeile 7 nur überflüssig, schadet aber nicht.
  • "usebackq" erlaubt es, zur Sicherheit den Pfad der Listendatei unter Anfühurngszeichen zu setzen (für den Fall, dass dieser Leerzeichen enthielte).
  • "delims=" verhindert das "Zerreißen" aufgrund der (Default-Trennzeichen) Leerzeichen, indem es festlegt, dass es kein Trennzeichen gibt und daher die gesamte Zeile als "%%i" zur Verfügung stehen soll.
  • Der Zusatz ".*" sorgt dafür, dass die kopierte Datei den Dateityp der Quelldatei behält.

Grüße
bastla

P.S.: Auch ein kurzer Gruß Deinerseits käme (vermutlich nicht nur in diesem Forum) gut an ...
Bitte warten ..
Mitglied: Stargrove
10.10.2010 um 12:21 Uhr
Hallo bastla,

es läuft PERFEKT!
Toll, dass Du auch eine Beschreibung der Befehle angegeben hat.

Vielen Dank und einen schönen Sonntag.

Beste Grüße
Stargrove
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Datei zeilenweise auslesen - es passiert aber nichts
gelöst Frage von NagusBatch & Shell3 Kommentare

Hi zusammen, ich stehe gerade auf dem Schlauch. Ich will mit einem einfachen Script aus einer text-Datei Dateinamen auslesen ...

Batch & Shell
Batch - Verzeichnisnamen mit Dateinamen vergleichen, wenn vorhanden eine .log-Datei kopieren und zu .txt umbenennen
gelöst Frage von BlattlausOGBatch & Shell9 Kommentare

Hallo, ich versuche gerade vergeblichst über die Google-Suche ein passendes Script für meine Anwendung zu finden, doch leider scheint ...

Batch & Shell
(BATCH:) Zeilenweise Txt auslesen und in eine Variable speichern
gelöst Frage von NincedBatch & Shell20 Kommentare

Hallo Leute, Ich weiß, es ist ein alter Hut, aber ich habe da ein paar Fragen bezüglich der for-Schleife ...

Batch & Shell
Kopieren von Dateien aus .txt Liste
Frage von mippselBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem: Von den über 2000 pdf/docx Dateien würde ich mir gerne gewisse Dateien in ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 20 StundenLinux

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 FrankSicherheit25 Kommentare

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

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 ...

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 ...

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 ...