shorty1
Goto Top

Frage zur Batch Datei (Kopieren von Datei)

Hallo
Also ich kenne mich noch nict viel mit Batch aus und frage deswegen hier ihm Forum.
ICh habe schon gegoogled , doch nicht wirklich was gefunden.

Also ich habe eine Batch datei erstellt, die auf dem Desktop eine Txt Datei erstellt, in dieser ein Satz steht.

ZB. liesmich.txt in dieser datei steht zb. Hallo

Nun möchte ich zur dieser batch nhoch etwas hinzufücgen, und zwar das diese txt datei , also liesmich.txt 5mal kopiert wir und auch auf dem desktop gespeichert wird.

Sodass danach auf dem Desktop folgende Dateien sind liesmich.txt kopie1liesmich.txt kopie2liesmich.txt ...

Dies sollte mit hilfe von variablen geschen, da ich es auch auf anderen pcs ausführen möchte.

Hier mal was ich bis jetzt habe , es funktioniert nur das kopieren nicht

CODE:

color 2
:1
cd\
cd %userprofile%
cd Desktop
Hallo > liesmal.txt

xcopy %Desktop% liesmal.txt %desktop% liesmal.txt

Wäre sehr dankbar wenn mir jemand den kopier Code umschreiben könnte

Mfg Julian

Content-ID: 36547

Url: https://administrator.de/contentid/36547

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

lord-obi
lord-obi 24.07.2006 um 08:41:56 Uhr
Goto Top
hi,
die variable %desktop% ist warscheinlich nicht definiert. gieb im cmd-fenster mal set ein dann giebt er dir eine liste aller definierten variablen zurueck.
shorty1
shorty1 24.07.2006 um 08:47:01 Uhr
Goto Top
JO Danke die Variable gibts garnet.

Wie kann ich das denn dann machen, also die datei liesmal.txt liegt auf dem desktop und soll kopiert werden.beim kopieren entstehen ja sofort die nummernänderung zb. kopie1,kopie2 usw

Könntest du mir vielleicht diesen Kopier Code erstellen?

vielleicht muss man um auf den desktop zu kommen diesen code verwenden

cd %userprofile%
cd Desktop


Wie gesagt ich bin totaler anfänger is sachen Batch

Danke im vorraus
24758
24758 24.07.2006 um 08:49:03 Uhr
Goto Top
Du bist bereits mit dem Befehl "cd Desktop" ins aktuelle, also ins Desktopverzeichnis, gewechselt. Für die kopierte Datei solltest Du einen anderen Namen verwenden. Sonst wird die aktuelle Datei immer wieder überschrieben.
Micha-HE
Micha-HE 24.07.2006 um 10:41:23 Uhr
Goto Top
So sollte es gehen (jedenfalls unter winXP):

@echo off
%systemdrive%
cd %userprofile%\Desktop
echo Hallo>liesmal.txt
for /L %%i in (1,1,5) do copy liesmal.txt liesmal_Kopie%%i.txt
shorty1
shorty1 24.07.2006 um 21:13:43 Uhr
Goto Top
vielen vielen dank, genau das habe ich gesucht
Biber
Biber 24.07.2006 um 21:42:20 Uhr
Goto Top
Moin shorty1,

willkommen im Forum.
Habe hier als Mod in Seitenzweig "Batch und Shell" des Forums interessiert mitgelesen, aber auch keinen Grund gesehen, mich einzumengen.
Zu den richtigen Lösungsansätzen von Warze und Micha-HE aber noch folgender Hinweis.

cd %userprofile% ---------> funktioniert;
> damit wechselt der Batch in das Verzeichnis [C:\Dokumente und Einstellungen\DeinUsername]

...aber: bei allen anderen CMD-Befehlen außer "CD" müssen Verzeichnisnamen mit Leerzeichen im Namen in Anführungszeichen eingeklammert werden. Wird sonst als mehrere Parameter aufgefasst.
Zweitens, so wie in Deinem Beispiel, kann es sein, dass Ziel-Dateien gleichen Namens schon vorliegen, wenn der COPY-Befehl loslegt. Dazu kannst Du dem Copy-Befehl einen Parameter /Y mitgeben, der in so einem Fall bestehende Dateien ohne Murren überschreibt.

Beispiel (für beide Klippen) am CMD-Prompt:
>copy x.txt %userprofile%
Syntaxfehler.

(=21:30:21  D:\temp=)
>copy x.txt "%userprofile%"  
C:\Dokumente und Einstellungen\Biber\x.txt überschreiben? (Ja/Nein/Alle): n
        0 Datei(en) kopiert.

(=21:30:45  D:\temp=)
>copy x.txt /y "%userprofile%"  
        1 Datei(en) kopiert.
In den drei Schritten vom CMD-Prompt aus wird deutlich, was passiert...
Das copy x.txt %userprofile% wird aufgelöst zu copy x.txt C:\Dokumente und Einstellungen\Biber und sagt deshalb "Syntaxfehler." Kann ja nicht nach 3 Orten kopieren ("C:\Dokumente"; "und"; "Einstellungen\Biber").
Das copy x.txt "%userprofile%" würde funktionieren...aber es gibt schon eine Datei dieses Namens. Deshalb die Rückfrage, die ich mit "N"ein beantwortet habe.
In Michas ösung also
for /L %%i in (1,1,5) do copy /y liesmal.txt liesmal_Kopie%%i.txt
Hoffe, es hilft beim Einstieg ins Bätchen
Biber

P.S. Setze bitte Deinen Beitrag auf "Gelöst" - und ein netter Zug von Dir wäre, den (vor mir) geposteten Lösungen auch eine entsprechende Bewertung ("hilfreich/sehr hilfreich") mitzugeben. Sonst mach ich das...
[Edit Feb. 2012 Gesagt, getan...face-wink - auf "Gelöst" gesetzt und geschlossen. [/Edit]
flugfaust
flugfaust 04.08.2006 um 12:22:13 Uhr
Goto Top
Und wen du es mit einer if then Schleiffe versuchst ?