Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Kopieren von Dateien mit Leerzeichen aus Dateiliste

Frage Entwicklung Batch & Shell

Mitglied: onlinebroker

onlinebroker (Level 1) - Jetzt verbinden

12.06.2007, aktualisiert 23.03.2008, 7102 Aufrufe, 7 Kommentare

Hallo!

Ich habe ein Batch geschrieben mit dem ich Datensätze von einem Rechner auf ein Netzlaufwerk kopieren möchte um diese in einem Archivsystem zu speichern.
Es werden zunächst Dateien versch. Unterverzeichnisse mit der Erweiterung .xyz in eine Datei gespeichert. Diese Dateien können auch Leerzeichen enthalten und dienen als Basis für die spätere Kopieroperation, bei der Dateien mit der Endung .xyz und mit gleichem Namen aber verschiedener Dateierweiterungen kopiert werden.
Mit folgendem Befehl wurde bisher probiert den Kopiervorgang durchzuführen. Wobei die Datei tmp_file mit dem Befehl forfiles(Speicherung inkl. Anführungszeichen) befüllt wurde.
for /F %%i in (%tmp_file%) do xcopy %src_dir%%%~pni.* %save_dir%\ /D /V /F /Y >> %log_file% 2>>&1
Habe schon versucht ausschließlich eine der Dateien mit dem Befehl xcopy zu kopieren, mit Erfolg. Auch die Datei mit dem dir-Befehl aufzubauen und im oben aufgeführten Befehl die Quelldatei mit der Endung .xyz in Anführungszeichen zu kopieren führte nicht zum Erfolg.
Fragestellung:
1. Beim Kopieren der Dateien mit Leerzeichen im Namen wird die Datei bzw. der Pfad beim Leerzeichen abgeschnitten. Wie muss die for-Schleife verändert werden bzw. was gäbe es für weitere Möglichkeiten.
2. Abgesehen von den Dateien mit Leerzeichen werden bestimmte Dateien nicht kopiert, obwohl in der Logfile vermerkt ist, dass diese kopiert wurden.

Bsp. %tmp_file%:
"\Pfad\12345.xyz"
"\Pfad\12 345.xyz"
"\Pfad\123 45.xyz"

Für Hilfe bzw. Ideen bin ich dankbar.

MfG
Mitglied: miniversum
12.06.2007 um 09:15 Uhr
Die Dateinamen werden Abgeschnitten, weil du die delims nicht gesetzt hast. Dadurch wird per Default das Leerzeichen als Trennzeichen benutzt. Willst du also in deiner For-Schleife Listen auslesen die Leerzeichen enthalten must du die delims imemr aus nichts setzen.
Des Weiteren werden durch das verwenden des ~ in %%~pni.* die ", die zwar in der Datei stehen, mit abgeschnitten. Dies mußt du auch wieder ausgleichen. So ergibt sich dann folgendes:

for /F "delims=" %%i in (%tmp_file%) do xcopy "%src_dir%%%~pni.*" "%save_dir%\" /D /V /F /Y >> %log_file% 2>>&1

miniversum
Bitte warten ..
Mitglied: Biber
17.06.2007 um 00:42 Uhr
Moin onlnebroker,

Für Hilfe bzw. Ideen bin ich dankbar.
Und ich immer für eine Rückmeldung...
Ist das Problem durch miniversums Antwort gelöst worden?

Grüße
Biber
Bitte warten ..
Mitglied: onlinebroker
18.06.2007 um 07:43 Uhr
Mogähn,

die Lösung von miniversum hat wunderbar funktioniert.
Dank an miniversum für die schnelle Hilfe.

Gruß

onlinebroker
Bitte warten ..
Mitglied: wowka86
23.03.2008 um 01:11 Uhr
abend...

nur ne frage zum verständniss...

wo kriege ich das "src_dir" her?? muss das nicht, so wie ich es verstanden habe, aus einet temporären datei kommen?
Bitte warten ..
Mitglied: miniversum
23.03.2008 um 10:51 Uhr
Die gepostete Zeile umdie es hier ging ist nur ein teil einer Batch.
Die Variable %src_dir% muß vorher difiniert werden. Ob die aus einer Datei kommt oder einfach so zuvor über einen set Befehl festgelegt wurde ist egal.
Das gleiche gilt auch für %tmp_file%, %save_dir% und %log_file%
Bitte warten ..
Mitglied: wowka86
23.03.2008 um 14:25 Uhr
ach so ok
danke schön

aber eine frage hätte ich doch noch und zwar wenn die adresse und der Dateiname schon in der liste vorhanden sind, wie kann ich die zum kopieren auslesen?
also damit die batch die datei mit dem namen, der in der liste steht, auf zb eine andere festplatte kopiert.
Bitte warten ..
Mitglied: miniversum
23.03.2008 um 19:09 Uhr
Das pasiert mit den For Befehl.
for /F "delims=" %%i in (Datei.txt) do echo %%i
würde die datei "Datei.txt" auslesen und den Inhalt zeilenweise ausgeben. Dabei steht in dem Fall in der Variablen %%i jeweils eine Zeile in der Datei.
Stehen also Dateinamen drin werden diese ausgelesen.
Genaueres zum For Befehl (oder andern) indem du in der Eingabeaufforderung
for /?
eingibst.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Schreiben eines Strings mit Leerzeichen in eine Datei (6)

Frage von c20082005 zum Thema Batch & Shell ...

Batch & Shell
Leerzeichen im Pfad (4)

Frage von Jallio zum Thema Batch & Shell ...

Webbrowser
gelöst Datei in Firefox Profilordner kopieren (9)

Frage von DarkScabs zum Thema Webbrowser ...

Batch & Shell
gelöst Batch Datei zum Kopieren aktueller Dateien erstellen (5)

Frage von daniel011 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(6)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Monitoring
Netzwerk-Monitoring Software (16)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Windows 10 Ordnerfreigabe (15)

Frage von Xaero1982 zum Thema Windows 10 ...