WinFuture-Forum.de: Batch Dynamisches Kopieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Batch Dynamisches Kopieren Wie man mittles Batchdatei in Unterordner kopiert.


#1 Mitglied ist offline   TheFreeman 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 19. November 08
  • Reputation: 0

  geschrieben 19. November 2008 - 14:59

Hallo zusammen,

ich bastel jetzt schon eine Weile an meiner Batch-Date und bin langsam echt am verzweifeln, weil meine Kopierfunktion nicht geht.

Vielleicht könnt Ihr mir ja helfen.

Die Schleife funktioniert schon ganz gut. Sie geht zuverlässig durch alle Unterordner. Die Prüfung auf die Existenz des Files funktioniert auch. Nur der copy-Befehl macht mir kopfschmerzen. Was stimmt damit nicht?

:COPY
@for /R %%i in (%2) do (
	if exist %%i\%1 (
		echo %1
	) else (
		copy %1 %%i
	)
)


Parameter %1 = Dateiname
Parameter %2 = Ordnername, der die Unterordner enthält.
0

Anzeige



#2 Mitglied ist offline   martin_mt 

  • Gruppe: aktive Mitglieder
  • Beiträge: 515
  • Beigetreten: 19. August 02
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 19. November 2008 - 15:27

okay.. doch etwas buggy... sorry..

mal schauen ob ich was finde

Dieser Beitrag wurde von martin_mt bearbeitet: 19. November 2008 - 15:32

0

#3 Mitglied ist offline   TheFreeman 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 19. November 08
  • Reputation: 0

geschrieben 19. November 2008 - 15:30

1. Er kopiert mir nicht die in %1 angegebene tocopy.txt in alle unterordner von %2 sondern eine datei ohne Endung, die den Namen von %2 hat.

2. Es wird nicht nur die Ordnerstruktur %2 angelangt, sondern alle ordner und unterordner ab dem, in dem die BAT liegt. das kapier ich nicht.
0

#4 Mitglied ist offline   martin_mt 

  • Gruppe: aktive Mitglieder
  • Beiträge: 515
  • Beigetreten: 19. August 02
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 19. November 2008 - 15:37

okay, punkt 2 war für mich eigentlich klar, dass es hier nur um relative, und nicht um absolute pfade gehen wird..


ad1:
hier ist mir auch noch nicht ganz klar warum er die zwei avariablen zusammenmischt....



so... problem für puntk 1 gelöst:

@echo off
for /R %%i in (%1) do (
rem	echo %%i 
   if exist %%i\%1 (
		echo "exists %%i"
	) else (
		echo "muss %1 nach %%i kopieren"
		copy %1 %%i
   )
)


%2 durch %1 ersetzt
kommentare musst noch rausnehmen :angry:

zu punkt 2, wie man ihm absolute pfade übergibt,da gibts hoffentlich andere spezialisten, damit hab ich mich nie beshcäftigt...

ggf kann ich es mir morgen ansehen.

muss jetzt leider weg

durch die änderung ist das verzeichnis jetzt obsolete, er kopierts in alles verfügbaren unterverzeichnisse ab dem, wo das batch file liegt..

Dieser Beitrag wurde von martin_mt bearbeitet: 19. November 2008 - 15:46

0

#5 Mitglied ist offline   TheFreeman 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 19. November 08
  • Reputation: 0

geschrieben 19. November 2008 - 15:58

OK Dankeschön :angry:

So geht´s jetzt:
:COPY
echo y |time|find /v "neue" >> copylog.txt
echo DATEI: %1 >> copylog.txt
echo ...processing...
@for /R %2 %%i in (%1) do (
	if exist %%i\%1 (
		REM @echo %1
	) else (
		@copy %1 "%%i" >> nul
		echo ...%%i >> copylog.txt
	)
)
echo Vorgang in copylog.txt geschrieben.
goto END

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0