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

Frage Microsoft Windows Tools

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

08.02.2012 um 15:15 Uhr, 5210 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
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 ...

Batch & Shell
Ordner von einem Verzeichnis in ein anderes Verzeichnis kopieren und Datei-Name verändern
gelöst Frage von gudboyBatch & Shell15 Kommentare

Ich habe ein "Verzeichnis A" mit Ordner. Die Ordner haben immer eine "F-Nummer" und einen Titel wie z.B. " ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 4 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 4 StundenSicherheit

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 6 StundenAdministrator.de Feedback6 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 11 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...