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 Batch Datei kopieren in Verzeichnis in Pfad mit Sonderzeichen

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

08.02.2012 um 15:15 Uhr, 5283 Aufrufe, 21 Kommentare

Guten Tag,
trotz eines Beitrags von bastla https://www.administrator.de/index.php?content=36547 bleiben bei mir noch Fragen ...

Ich möchte gerne auch eine Datei kopieren. Allerdings kommen im Pfad Sonderzeichen oder öäü vor. Außerdem fragt er, ob es sich beim Ziel um eine Datei oder um einen Ordner handelt.
Gerne würde ich den Pfad aus einer Datei auslesen und eine Datei in diesen Pfad kopieren, trotz Sonderzeichen. Alles ohne Nachfrage...

01.
for /L %%i in (1,1,5) do copy /y liesmal.txt location%%i.txt
liesmla.txt soll kopiert werden. In location.txt steht der Pfad, z.B. "C:\Temp\Daten zum Löschen\Neuer Ordner"
Muss der ohne Anführungszeichen stehen, oder liegt es vielleicht daran?
Irgendwie verstehe ich die Syntax nicht, der kopiert mir mehrere Dateien in das aktuelle Verzeichnis, aber nicht da hin wo er soll...
Vielleicht kann noch einmal jemand draufgucken

Danke, OKIDOKI
Mitglied: 60730
08.02.2012 um 15:29 Uhr
moin,

Irgendwie verstehe ich die Syntax nicht, der kopiert mir mehrere Dateien in das aktuelle Verzeichnis, aber nicht da hin wo er soll...
  • meistens hilft es schon, wenn man komplex erscheinende Zusammenhänge zerlegt und sich dann informiert, was ein einzelner Schritt macht.

C:\>copy /? 
Kopiert eine oder mehrere Dateien an eine andere Position. 
 
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B] Quelle [/A | /B] 
     [+ Quelle [/A | /B] [+ ...]] 
     [Ziel [/A | /B]]
[OT]40 Tage weg und nix verpasst[/OT]
Bitte warten ..
Mitglied: bastla
08.02.2012 um 15:37 Uhr
Hallo OKIDOKI!

Wenn Du vorweg
set "location=C:\Temp\Daten zum Löschen\Neuer Ordner"
verwendet hast, musst Du natürlich auch die Variable %location% angeben (da ansonsten, wie Du ja schon bemerkt hast, natürlich nur der Text "location" verwendet wird):
for /L %%i in (1,1,5) do copy liesmal.txt "%location%\%%i.txt"
Da Du hier "copy" in einem Batch verwendest, braucht es für das Überschreiben einer ev schon vorhandenen Zieldatei kein "/y" (steht etwas unterhalb des von T-Mo geposteten Auszugs in der Onlinehilfe).

Anführungszeichen pflege ich erst bei der Verwendung zu setzen, nicht bereits bei der Zuweisung zur Variablen (das erste Anführungszeichen ober befindet sich schon vor dem Variablennamen).

Hinsichtlich der Sonderzeichen: Wenn Du diese mit einem ASCII-Editor eingibst oder etwa per
echo set "location=C:\Temp\Daten zum Löschen\Neuer Ordner">Batchdatei.cmd
aus der CMD-Shell die entsprechende Zeile erzeugst, sollten sie auch funktionieren ...

Grüße
bastla

P.S.: Für den oben ("trotz eines Beitrags von bastla") verlinkten Beitrag kann ich aber nix ...
Bitte warten ..
Mitglied: 60730
08.02.2012 um 15:47 Uhr
Salü Bastla,

ich vermute, der Kollege wil gar nicht forlen, sondern stinknormal forfen.
also nix mit Zähler - mir scheint dieses Tutorial, von dem ich früher immer dachte, es wäre garnicht nötig, müsste mal gefunden werden.
Man(n) könnte Alternativ natürlich den anderen Teil der Befehlskette ähnlich zerlegen und den via /? erzeugten Output man inputten.


Gruß
Bitte warten ..
Mitglied: bastla
08.02.2012 um 15:56 Uhr
Hallo T-Mo!

Bei näherer Betrachtung von
Gerne würde ich den Pfad aus einer Datei auslesen
wirst Du vermutlich mit Deiner Vermutung richtig liegen - aber schau mer mal (und nehmen wir dann einfach chcp 1252) ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
08.02.2012 um 20:02 Uhr
Guten Abend, hier ist der Kollege

leider funktioniert bastlas Vorschlag bei mir nicht...
Inhalt location.txt: C:\Temp\Daten zum Löschen\Neuer Ordner
Komischerweise will er 5 Dateien anlegen, kann aber 5x den Pfad nicht finden:

01.
@echo off & setlocal  
02.
chcp 1252>nul  
03.
set "location=location.txt" 
04.
for /L %%i in (1,1,5) do copy liesmal.txt "%location%\%%i.txt" 
05.
chcp 850>nul
OKIDOKI
Bitte warten ..
Mitglied: bastla
08.02.2012 um 21:45 Uhr
Hallo OKIDOKI!
Komischerweise will er 5 Dateien anlegen
Wieso komisch? Deine Schleife zählt ja von 1 bis 5 ...

Zum Einlesen der ersten Zeile einer Datei kannst Du
set /p location=<location.txt
verwenden, wenn es mehrere Zeilen sein sollen, brauchst Du eine "for /f"-Schleife ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
09.02.2012 um 08:34 Uhr
Hallo bastla,
leider geht es immer noch nicht:

01.
@echo off & setlocal  
02.
set "location=<location.txt" 
03.
for /L %%i in (1,1,1) do copy liesmal.txt "%location%\%%i.txt" 
04.
Pause
Jetzt kommt die Meldung: Syntax für den Dateiname, Verzeichnisnamen oder Datenträgerbezeichnung falsch

Was kann ich tun?
Bitte warten ..
Mitglied: Biber
09.02.2012 um 09:17 Uhr
Moin OKIDOKI,

Zitat von OKIDOKI:
Hallo bastla,

Was kann ich tun?
Vergleiche mal bastlas "Set /p Location="-Zeile mit deiner "set location="-Zeile...

Grüße
Biber
Bitte warten ..
Mitglied: OKIDOKI
09.02.2012 um 09:21 Uhr
Moin Biber,

habe ich gemacht
Jetzt kommt noch die Meldung Syntaxfehler ...

Oh, mann ...
Gruß OKIDOKI
Bitte warten ..
Mitglied: bastla
09.02.2012 um 09:47 Uhr
Hallo OKIDOKI!

Vielleicht sollten wir jetzt doch einmal darüber reden, was Du eigentlich vorhast - die Verwendung der Zählschleife sieht etwas abenteuerlich aus ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
09.02.2012 um 10:27 Uhr
moin zusammen,

Ich weis ja nicht, wie ihr das seht. Vllt stehen einfach nur zuviel Bäume vor dem Wald. Aber:
Die Anforderung
for /L %%i in (1,1,5) do copy /y liesmal.txt location%%i.txt
liesmla.txt soll kopiert werden. In location.txt steht der Pfad, z.B. "C:\Temp\Daten zum Löschen\Neuer Ordner"
Inhalt location.txt: C:\Temp\Daten zum Löschen\Neuer Ordner (also ohne Anführungszeichen)

Da es bisher knapp vorbeigeschrammt ist, vfolgender Vorschlag:
Nimm xcopy - das erstellt auch den fehlenden Pfad mit.
01.
@echo off & setlocal  
02.
chcp 1252>nul  
03.
set /p location=< location.txt 
04.
for /L %%i in (1,1,5) do xcopy liesmal.txt "%location%\%%i.txt" 
05.
chcp 850>nul
PS. soll jetz Liesl dorthin oder kommt es dort her?
der kopiert mir mehrere Dateien in das aktuelle Verzeichnis, aber nicht da hin wo er soll...

Pps.
die Verwendung der Zählschleife sieht etwas abenteuerlich aus ...
ist auch nur ein copy and paste Syntaxfehler.
Bitte warten ..
Mitglied: OKIDOKI
09.02.2012 um 10:46 Uhr
Hallo bastla,

das ist eine gute Idee!

Also, ich möchte eine Datei an einen anderen Ort kopieren. Der Pfad ist in einer Textdatei gespeichert (bspw: "C:\Temp\Daten zum Löschen\Neuer Ordner")
Dort, wo sie hinkopiert werden soll, soll es ohne Nachfrage geschehen.
Zusatzfrage: Wie soll der Pfad gespeichert werden, so "Pfad" oder ohne Gänsefüße?

Danke für deine Mühe!
Gruß OKIDOKI
Bitte warten ..
Mitglied: 60730
09.02.2012 um 11:02 Uhr
moin,

  • Gegenfrage 1: Sind Leherzeichen im Pfad zu erwarten?
  • Gegenfrage 2: wieviel Gewicht spart du beim versenden der Batch, wenn die unnützerweise Anführungszeichen mitführt?
  • Gegenfrage 3: Hattest du schon Erfolg beim finden des Tutorials zur Schleifenbildung?
Bitte warten ..
Mitglied: bastla
09.02.2012 um 11:19 Uhr
Hallo OKIDOKI!

Unter der Annahme, dass es den Zielpfad tatsächlich noch nicht gäbe, wäre der Vorschlag von PH sinnvoll, "xcopy" zu verwenden:
01.
@echo off & setlocal 
02.
chcp 1252>nul 
03.
set /p "location=<location.txt" 
04.
xcopy /y liesmal.txt "%location%\" 
05.
chcp 850>nul
In der Textdatei braucht der Pfad keine Füße - erst bei der Verwendung im Kopierbefehl sind sie dann sinnvoll bzw aufgrund Deines Beispieles auch nötig ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
09.02.2012 um 14:47 Uhr
Hallo bastla und TimoBeil,

leider kopiert er nach bastals Vorschlag die Datei nur nach C:, obwohl der Pfad C:\Temp\Daten zum Löschen\Neuer Ordner lautet (ob mit oder ohne Gänsefüße...)

Der Zielfpfad ist aber vorhanden, weil ich den vorher mit BrowseForFolder ermittlet habe. Der Pfad steht dann in location.txt

zu TimoBeil:
Gegenfrage 1: Sind Leherzeichen im Pfad zu erwarten? ja, in jedem Fall, auch Sonderzeichen o.ä. sind möglich
Gegenfrage 2: wieviel Gewicht spart du beim versenden der Batch, wenn die unnützerweise Anführungszeichen mitführt? Das wäre kein Problem, die kann ich mit ausgeben oder weglassen
Gegenfrage 3: Hattest du schon Erfolg beim finden des Tutorials zur Schleifenbildung? Da ist mir jetzt der Zusammenhang unklar


Viele Grüße OKIDOKI
Bitte warten ..
Mitglied: pieh-ejdsch
09.02.2012 um 15:00 Uhr
issjahglor

01.
set /p "location=<location.txt"
isjahrochvöllig anners als
01.
set /p location=<location.txt
1.eres Erwartet eine Eingabe und letzteres setzt als VariablenInhalt die erste Zeile der Datei.

Zitat von Biber:
Vergleiche mal bastlas "Set /p Location="-Zeile mit deiner "set location="-Zeile...


Zitat von pieh-ejdsch:
Ich weis ja nicht, wie ihr das seht. Vllt stehen einfach nur zuviel Bäume vor dem Wald.
ist auch nur ein copy and paste Syntaxfehler.
Bitte warten ..
Mitglied: bastla
09.02.2012 um 15:07 Uhr
@PH
Wo Du Recht hast, hast Du Recht - typischer Fall von "zu gut gemeint" ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
09.02.2012 um 15:09 Uhr
Super issjahglor!

Hat endlich auf Anhieb funktioniert!

Ergäzung: Esw wird sogar der Pfad (laut location) angelegt, sofern er noch nicht vorhanden ist.

Danke an bastla, issjahglor, TimBeil und Biber für eure kompetente, megaschnelle und vor allem geduldige Unterstützung.

Danke OKIDOKI

PS: Bald gibt es gar keine Probleme mehr, die dieses Forum nicht schon behoben hat!!!
Bitte warten ..
Mitglied: pieh-ejdsch
09.02.2012 um 15:12 Uhr
Höhöhö,

kene Namensverdrehung hier
01.
if "pieh-ejdsch" equ "issjahglor" (echo(Name richtig.) else echo(Bitte korrigieren.
Gruß Phil
Bitte warten ..
Mitglied: bastla
09.02.2012 um 15:51 Uhr
Hallo OKIDOKI!

Auch wenn schon "Ende gut" ist - warum steht der Pfad, den Du per "BrowseForFolder" geholt hast, in einer Datei und nicht in einer Variablen?

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
09.02.2012 um 16:01 Uhr
Also:

Danke pieh-ejdsch [ich habe den Guttenberg gemacht] (copy-paste-Fehler ;-()


Auch wenn schon "Ende gut" ist - warum steht der Pfad, den Du per "BrowseForFolder" geholt hast, in einer
Datei und nicht in einer Variablen?

Da hast du recht, aber die Variable wird vorher in einer Ruotine erfasst, abgespeichert und erst später, irgendwann, wieder eingelesen. Ich hatte das nur als Hintergrud erwähnt, wegen der Gänsefüße oder nicht, denn dann haätte ich das dort ergänzen müssen.

Man kann es nicht oft genug sagen, danke für eure Unermüdlichkeit!
PS: Wie bekommt man so viel Fachwissen ... *Neid*

Gruß OKIDOKI
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Datei - Verzeichnis kopieren funktioniert nicht - nur Dateien

gelöst Frage von inspiratioBatch & Shell12 Kommentare

Hallo zusammen, ich habe eine Batch Datei erstellt wo die Unterverzeichnisse von A nach B kopiert werden sollen: echo ...

Windows Tools

Batch Verzeichnis vergleichen, in einer anderes kopieren

Frage von cappu25Windows Tools11 Kommentare

Halloo an alle, ich habe jetzt schon verdammt lange rumprobiert und gegooglet aber ich bekomme keine Lösung hin. Folgendes: ...

Batch & Shell

Batch zum Kopieren in aktuelles Verzeichnis

gelöst Frage von MasterSchlumpfBatch & Shell5 Kommentare

Hallo zusammen, ist es möglich eine Batch-Datei zu schreiben, welche ein Verzeichnis auf den USB Stick kopiert von dem ...

Microsoft

Batch Datei zum Kopieren bestimmter ordner mit Pfad

gelöst Frage von eivloxMicrosoft6 Kommentare

Hallo zusammen , Hab schon ein bisschen gegoogled aber nichts passendes gefunden . Folgendes Problem: Ich möchte einen Ordner ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 3 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 8 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 22 StundenSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server38 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless21 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...