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-ID: 105562

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

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

Icedg
Icedg 09.01.2009 um 10:29:07 Uhr
Goto Top
Moin Flo,

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

Gruß
Dirk
Flo985
Flo985 09.01.2009 um 10:32:51 Uhr
Goto Top
Hi Dirk,
Nein, ich möchte das ich angebe, welche Datei, oder Dateien kopiert werden sollen.
cybersnake
cybersnake 09.01.2009 um 10:35:33 Uhr
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
Flo985
Flo985 09.01.2009 um 10:55:06 Uhr
Goto Top
Hi, kurze Frage:
Wo muss ich denn meine Pfade eingeben?
Und was ist cd:\1\
cybersnake
cybersnake 09.01.2009 um 11:00:46 Uhr
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 :=)
Flo985
Flo985 09.01.2009 um 11:06:30 Uhr
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?
cybersnake
cybersnake 09.01.2009 um 11:09:06 Uhr
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
Flo985
Flo985 09.01.2009 um 11:23:04 Uhr
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
cybersnake
cybersnake 09.01.2009 um 11:29:00 Uhr
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.
Flo985
Flo985 09.01.2009 um 11:31:37 Uhr
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.
cybersnake
cybersnake 09.01.2009 um 11:36:18 Uhr
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
Flo985
Flo985 09.01.2009 um 11:40:44 Uhr
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?
cybersnake
cybersnake 09.01.2009 um 11:41:45 Uhr
Goto Top
ohm man langsam musste mich bezahlen dafür *smile*

nachm mitag schau ich mir das ma an und sag dann bescheid
Flo985
Flo985 09.01.2009 um 11:46:47 Uhr
Goto Top
Alles klar.
Trotzdem schon mal vielen Dank für deine Hilfe.
cybersnake
cybersnake 09.01.2009 um 12:46:20 Uhr
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
cybersnake
cybersnake 09.01.2009 um 13:02:26 Uhr
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
Flo985
Flo985 09.01.2009 um 13:52:25 Uhr
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?
Flo985
Flo985 09.01.2009, aktualisiert am 18.10.2012 um 18:37:35 Uhr
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.