flo985
Goto Top

Per Batch ausgewählte Dateien kopieren

Hi, ich möchte folgendes realisieren:
Ich möcjte Dateien aus einem Ordner in einen anderen kopieren. Soweit ja kein Problem.
Wenn ich die Batch-Datei ausführe, soll er mich aber erst fragen, welche Dateien ich kopieren möchte. Ich möchte quasi die Dateien benennen können,
so dass er dann nur die von mir angegeben kopiert.
So gut kenne ich mich mit Batch-Programmierung nicht aus, deswegen hoffe ich, ihr könnt mir helfen.

Mein Code bisher:
@ECHO OFF 
CLS 
REM ---------------------------- 
ECHO Das kopieren wird nun gestartet ...
ECHO -----------------------------------------------------------
ECHO. 
xcopy "Pfad" "Pfad" /Y /I /E /s /m /h /c  
ECHO. 
ECHO Das kopieren war erfolgreich... 
ECHO -----------------------------------------------------------
PAUSE
REM -----------------------------Ende----------------------------

Content-Key: 105562

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

Printed on: June 22, 2024 at 21:06 o'clock

Member: Icedg
Icedg Jan 09, 2009 at 09:29:07 (UTC)
Goto Top
Moin Flo,

du möchtest, das das Shell dich Datei für Datei fragt, ob du diese kopieren möchtest ?

Gruß
Dirk
Member: Flo985
Flo985 Jan 09, 2009 at 09:32:51 (UTC)
Goto Top
Hi Dirk,
Nein, ich möchte das ich angebe, welche Datei, oder Dateien kopiert werden sollen.
Member: cybersnake
cybersnake Jan 09, 2009 at 09:35:33 (UTC)
Goto Top
Hey.

So zum Beispiel ?

@echo off
:eingabe
echo ======================================================
echo Geben sie den Dateinamen der zu kopierenden Datei ein:
echo ======================================================
cd C:\1\
dir
set /p data=
xcopy C:\1\%data% C:\2\ /Y /I /E /s /m /h /c
echo ======================================================
echo Wollen Sie noch eine Datei kopieren? (j/n)
echo ======================================================
set /p ant=
if "%ant%"=="j" GOTO eingabe  
cls
echo ===============================
echo Daten wurden kopiert.
echo ===============================
pause

gruß
CyberSnake
Member: Flo985
Flo985 Jan 09, 2009 at 09:55:06 (UTC)
Goto Top
Hi, kurze Frage:
Wo muss ich denn meine Pfade eingeben?
Und was ist cd:\1\
Member: cybersnake
cybersnake Jan 09, 2009 at 10:00:46 (UTC)
Goto Top
cd C:\1\

da hab ich den ordner geweschselt und bin auf den test ordner mit dem namen 1 auf laufwerk C:\ gegangen

hab ich nur zum test eingerichtet

von wo nach wo also C:\1\ und C:\2\ sind quell und ziel pfad die musst du anpassen

die xcopy optionen hab ich von dir jetz nur übernommen, damit hab ich mich noch nicht befasst

ich hab das grad auch nur in 2 min zusammen gebastelt :=)
Member: Flo985
Flo985 Jan 09, 2009 at 10:06:30 (UTC)
Goto Top
Ok, habe die Pfade angepasst. Wenn ich das "dir" raus nehme, komme ich zur Dateiabfrage!!!
Habe in dem Ordner eine Textdatei gemacht, die 123.txt heißt.
Wenn er mich nach der zu kopierenden Datei fragt und ich 123.txt angebe, sagt er mir unzulässige Parameteranzahl

Woran liegt das? Kannst du das Prog. mal bei dir testen?
Member: cybersnake
cybersnake Jan 09, 2009 at 10:09:06 (UTC)
Goto Top
das dir war nur zum anzeiger der verfügbaren daten, du hättest trotzdem den dateinamen danach eingeben können, bischen blöde gemacht von mir, sorry

poste mal wie der skript jetz bei dir aussieht
Member: Flo985
Flo985 Jan 09, 2009 at 10:23:04 (UTC)
Goto Top
@echo off
:eingabe
echo ======================================================
echo Geben sie den Dateinamen der zu kopierenden Datei ein:
echo ======================================================
cd C:\Pfad\
set /p data=
xcopy C:\Pfad\%data% \\Server\Pfad\ /Y /I /E /s /m /h /c
echo ======================================================
echo Wollen Sie noch eine Datei kopieren? (j/n)
echo ======================================================
set /p ant=
if "%ant%"=="j" GOTO eingabe
cls
echo ===============================
echo Daten wurden kopiert.
echo ===============================
pause

Bis zur Abfrage, welche Datei kopiert werden soll, läuft es, nur dann gebe ich den Deteinamen ein und es kommt unzulässige Parameteranzahl
Member: cybersnake
cybersnake Jan 09, 2009 at 10:29:00 (UTC)
Goto Top
ähm.... bei mir läuft das skript so wie du es gepostet hast.

hab zum test auch grad mal ne datei von meiner platte auf einen server im netzwerk kopiert.

PS: hab es grad noch mal getestet. von Vista nach Server03 und von XP nach Server03 klappt es bei mir ohne probleme

PS2: wenn die abfrage nach dem namen kommt, geb ma nicht den namen selber ein sonder drücke TAP. dann sollte er selber die dateinamen anzeigen.
Member: Flo985
Flo985 Jan 09, 2009 at 10:31:37 (UTC)
Goto Top
Ja, bei mir läuft es jetzt auch.
Nur ein Problem noch:
Also, ich kopiere die Datei 123.txt. Das funktioniert.
Dann lösche ich die Datei wieder auf dem Server. Starte das Programm noch mal und will die Datei nochmal kopieren. Dann geht es nicht.

Außerdem ist es so, das wenn ich nur eine Datei angebe, er trotzdem die Ordner kopiert, die auch in dem Verzeichnis liegen.
Member: cybersnake
cybersnake Jan 09, 2009 at 10:36:18 (UTC)
Goto Top
das liegt an einer deiner optionen von xcopy. wenn ich /Y /I /E /s /m /h /c lösche dann fragt er zwar nach dem ersetzen aber dann kopiert er das trotzdem. mit den optionen geht es bei mir auch nicht
Member: Flo985
Flo985 Jan 09, 2009 at 10:40:44 (UTC)
Goto Top
Stimmt, hast Recht, habe jetzt alle raus gemacht. Dann funktioniert es. Auch den Ordner kopiert er nicht mehr mit.
Jetzt nur noch das Problem:
Wenn ich mit Tab durchgehe und ich habe einen Ordner, und sage kopieren, kopiert er mir nicht den Ordner. Kann man das noch irgendwie machen?
Member: cybersnake
cybersnake Jan 09, 2009 at 10:41:45 (UTC)
Goto Top
ohm man langsam musste mich bezahlen dafür *smile*

nachm mitag schau ich mir das ma an und sag dann bescheid
Member: Flo985
Flo985 Jan 09, 2009 at 10:46:47 (UTC)
Goto Top
Alles klar.
Trotzdem schon mal vielen Dank für deine Hilfe.
Member: cybersnake
cybersnake Jan 09, 2009 at 11:46:20 (UTC)
Goto Top
hm das ist ein problem, den folgendes:

set /p data= (hier hab ich jetz den ordner "test" eingegeben)  
xcopy C:\Pfad\%data% \\s28\Backup

wenn er das atribut einsetzt steht als quelle C:\pfad\test\

das heißt er kopiert dann alle dateien aus test nach \\s28\Backup

wenn du als dateinamen *.* eingibst kopiert er auch das verzeichniss weil man ihm sagt er soll alles aus dem ordner pfad rauskopieren.

darüber muss ich nachdenken. wenn mir was einfällt melde ich mich wieder
Member: cybersnake
cybersnake Jan 09, 2009 at 12:02:26 (UTC)
Goto Top
wenn in dem ordner den du bei der dateieingabe angibst noch nen unterordner ist, dann funktioniert das. soweit bin ich schon mal. aber das man da dirket den ordner zum kopieren eingeben kann... ich fürchte ich finde da so schnell keine lösung
Member: Flo985
Flo985 Jan 09, 2009 at 12:52:25 (UTC)
Goto Top
Hi, habe nochmal ein anderes anliegen.
Ist es möglich, das wenn ich eine Dateieingabe mache, er diese datei sucht (auch in den unterordnern) und dann die Datei kopiert?
Und es sind alles .NC -Dateien. Wenn er Sie kopiert, soll die Dateiendung in .ori geändert werden.
Geht das?
Member: Flo985
Flo985 Jan 09, 2009, updated at Oct 18, 2012 at 16:37:35 (UTC)
Goto Top
Das es ja relativ mächtig wird, habe ich nochmal einen neuen Thread aufgemacht!!
Per Batch nach Datei in Ordner suchen, dann umbenennen, dann kopieren

Danke für deine bisherige Hilfe.