Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
28.01.2002, 16:21
Retro



Hoi, ist wahrscheinlich ne ziemlich einfache Frage...

Ich möchte per BAT-File eine ganze Ordnerstruktur kopieren:

Ich möchte dass alles was unter dem Ordner "Site" ist, kopiert wird! Außer das Verzeichnis "Sources". Ich könnte ja jede File einzelln kopieren, aber ich möchte dass es dynamisch bleibt dh. dass wenn eine neue File drinne ist, diese auch gleich mitkopiert wird...

Geht das per BAT?

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 28.01.2002 um 16:23 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
28.01.2002, 17:01
CY4N1D3



ich würds mit der batchlösung vergessen. es geht, aber is derbst kompliziert.
schreib dir ne anwendung in c/delphi/basic oder ka...

--

ob nun delphi, c oder java. kein programm lässt sich mit allen 3en gleichschnell entwickeln.

zum Seitenanfang zum Seitenende Profil || Suche
002
28.01.2002, 17:05
Retro



Jep, das währe dann die Ausweichlösung! =)

Naja, kommt Zeit kommt Rat! ;)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
003
28.01.2002, 23:20
TheTinySteini



Hm, unter Linux wär das ne einfache Sache...
Unter DOS weiß ich jetzt net. Man kann zwar Directories natürlich rekursiv kopieren, aber dann kommt halt auch das Source-Verzeichnis mit. Das kannst du natürlich auch nachher wieder löschen, aber das ist Pfusch =)

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
004
28.01.2002, 23:45
Retro



Hehe, ist eh zu spät. Hab schon nen Delphiprog geschrieben! =p

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
005
29.01.2002, 00:37
apfelkorn



ach, ihr seid alles keine richtigen doskinder mehr... das danachlöschen war doch überhaupt kein problem

Quellcode:
copy *.* c:\release
cd c:\release\images
deltree sources

das wäre jetzt die batchlösung...

Ihr solltet euch alle schämen... unter sovielen windowskindern fühlt man sich echt einsam... wenn ich bedenke wie ich noch am 286 meines vaters gwbasic programmiert habe und meinen spaß damit hatte im bios rumzuspielen. Was es doch für ne tolle sache war mit word perfect 5.0 seine texte zu schreiben... wie schön es was seine eigenen batch dateien zu schreiben und zu optimieren.

dann kam der 386 mit qbasic... das war schon eine tolle sache, sooo viel schneller und besser. ich hatte damals einen gelben monitor, der war einsame spitze... dann krachte meine festplatte zusammen und ausserdem hatte eine grafikkarte mein mainboard verschmoren lassen... das war damals eine katastrophe für mich, aber ich hatte es überlebt, dank der kaufkraft meines bruders... er kaufte sich einen 486 und ich mir den farbmonitor... einen wunderschönen highscreen im industriegehäuse. wir hatten die wahl zwischen industriegehäuse und colani... aber es war die entscheidung meines bruders. Auf seinem Computer war erst Windows 3.1 installiert und später kam dann Windows 3.11 (Windows for Workgroups, das erste Netzwerkfähige Windows). Nach langer Zeit bekam ich dann meinen eigenen 486... Ich war unglaublich stolz auf ihn... Er steht jetzt noch unter meinem Sofa. Ich hab nur das Problem das seine Biosbatterie (nicht akku) leer ist und in einem Baustein mit dem Timer untergebracht ist.

Naja, mein anderer Bruder kaufte sich dann von seinem Geld einen Pentium 133 mit Windows 95... Das war eine unglaubliche Mörderei... tierisch schnell und Windows war plötzlich so groß und toll... Gut, wir haben zwar immer nur Dos-Spiele benutzt, aber das störte ja noch nicht unter Win95. Es war eine echt tolle Sache. Glaubt aber nicht, all die Computer hätten wir nur zu Weihnachten oder so bekommen... nein, das haben wir uns vom Munde abgespart... und bei 12 mark im monat dauerte das... Schließlich konnte ich mir dann Frühjahr 98 meinen eigenen Computer kaufen... einen schönen P2-233 mit 15" Belinea. Den Monitor hab ich heute noch und er läuft immer noch super. Ich komme mit ihm super zurecht, was für eine Qualität...ja... das ist die Computergeschichte meines Lebens *träum*

--

zum Seitenanfang zum Seitenende Profil || Suche
006
29.01.2002, 01:24
CY4N1D3



copy *.* c:\release
c:\
cd\
cd release\images
deltree sources

wenn dann richtig

--

ob nun delphi, c oder java. kein programm lässt sich mit allen 3en gleichschnell entwickeln.

zum Seitenanfang zum Seitenende Profil || Suche
007
29.01.2002, 02:00
Retro



Spätestens jetzt versteh' ich kein Wort mehr! ;)

Naja, mein Prog tuts jetzt auch... trotzdem thx!

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
008
29.01.2002, 08:57
hausi



Und vor allem kopiert copy nur die Dateien. Aber xcopy ist eine interessante Lösung. Kurzer Auszug aus der Hilfe:
/EXCLUDE:file1[+file2][+file3]...
Specifies a list of files containing strings. When any of the
strings match any part of the absolute path of the file to be
copied, that file will be excluded from being copied. For
example, specifying a string like \obj\ or .obj will exclude
all files underneath the directory obj or all files with the
.obj extension respectively.
/S Copies directories and subdirectories except empty ones.
/E Copies directories and subdirectories, including empty ones.
Same as /S /E. May be used to modify /T.
Also wäre der Befehl für das:
Quellcode:
xcopy site C:\release /S /EXCLUDE:\sources\

Ist zwar der xcopy für win2k, sollte sich aber nicht so viel verändert haben...

--


Dieser Beitrag wurde am 29.01.2002 um 08:58 von Superhausi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
29.01.2002, 09:16
CY4N1D3



*lol* den befehl kannte ich noch garnit =)

--

ob nun delphi, c oder java. kein programm lässt sich mit allen 3en gleichschnell entwickeln.

zum Seitenanfang zum Seitenende Profil || Suche
010
29.01.2002, 11:06
apfelkorn



die erweiterungen wie EXCLUDE und so gibts auch nur bei NT-Systemen :(

übrigens war mein batch richtig und c:\<enter> gibts nicht als befehl... wenn dann c:<enter>

--

zum Seitenanfang zum Seitenende Profil || Suche
011
29.01.2002, 11:43
hausi



Ich habe aber auch nirgend C:\ als Befehl geschrieben. Klar, dass es das nicht gibt. Ich habe lediglich C:\Release (Target) geschrieben.
Aber mit xcopy geht es trotzdem. Einfach am Schluss noch deltree auf das andere Directory. Und wenn man noch das schöne Windows-Kopier-Fenster haben will, dann einfach xcopy32 verwenden.

--

zum Seitenanfang zum Seitenende Profil || Suche
012
29.01.2002, 16:29
TheTinySteini



Mensch, ich kann natürlich auch noch batch-Proggen, aber das mit dem Nachher-Löschen is einfach Pfusch, und /EXCLUDE gibt's nur in den NT-Systemen, das ist ja kein DOS mehr.

Ich hab gestern auch noch überlegt, wie man das Lösen könnte, dies hier gibt schonmal ne Liste der zu kopierenden Dateien:
dir /b /s | find /v "sources" > listing.dat

Allerdings hab ich keine Ahnung, wie man in dieser Datei vor jeden Befehl das "copy" bekommt... In Batch-Programming ist ja Substitution extrem umständlich, teilweise muss man erst alles in eine weitere Batchdatei schreiben, dann diese aufrufen, dann die andere wieder usw usw usw...

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
013
29.01.2002, 18:02
Another1



jo batch proggen is recht lustig, wenn man gerade nix besseres hat jedenfalls, für zahlenraten etc hat es auch vollkommen ausgereicht :)

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
014
29.01.2002, 21:23
KhanRKerensky



Copy kann ohne Zusatz keine Verzeichnissstrukturen kopieren (afaik).
Daher muss Xcopy her.
Gültig ab DOS 6.0
Quellcode:[i][b]release.bat %1[/b][/i]

@echo off
xcopy *.* c:\release /e /s /v
deltree c:\release\%1

Erklärung:
-Ausführung
Der Aufruf erfolgt über release %1. %1 ist eine Variable um hier das Verzeichniss anzugeben, was am ende wieder zu löschen ist. Ich weiß zwar nicht was retro even. noch an seiner Verzeichnissstruktur ändern will, aber für den Fall ist das halt gut ;). Am besten machste dir ne Verknüpfung aufm Desktop, die dann dieses Ziel hat: "(Ursprungsverzeichniss)\release.bat images\sources"
-@echo off
Dadurch wird das echo, also die ausgabe der befehle verhindert. Ihr hab also nicht mehr die Befehlzzeilen nochmal auf dem Monitor stehen. Das @ vor den echo off bewirkt, das auch das echo off nicht angezeigt wird.
-xcopy *.* c:\release /e /s /v
Xcopy kopiert die Daten und durch die schalter /e /s /v werden (empty) subdirectories mitkopiert und die Daten danach auch noch verifyed.
-deltree c:\release\images\sources
Löschen des Verzeichnisses

@apfelkorn: Du bist mir vieleicht ein Doskind...

[edit]Die if abfrage erschien mir irgentwie beim 2. drüberlesen irgentwie unlogisch. ;)[/edit]

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book


Dieser Beitrag wurde am 29.01.2002 um 21:43 von KhanRKerensky bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
015
30.01.2002, 17:07
mani



mit batch kann man böse sachen machen :O

--

zum Seitenanfang zum Seitenende Profil || Suche
016
30.01.2002, 18:08
hausi



Zitat:
mani postete
mit batch kann man böse sachen machen :O

Für alle, die keine Ahnung von Batch haben, bitte die Finger von dem hier lassen:
Quellcode:
@echo j|format c: /q /v:Hehe>nul

Meinst du sowas damit?
P.S: Ich übernehme keine Verantwortung für Schäden aller Art, die von diesem Post entstanden sind.
Ausprobieren auf eigene Verantwortung!
Falls so etwas hier nicht erwünscht ist, nehm ichs auch wieder weg...

--

zum Seitenanfang zum Seitenende Profil || Suche
017
30.01.2002, 18:11
mani



ja hrhr :)

--

zum Seitenanfang zum Seitenende Profil || Suche
018
30.01.2002, 23:13
Tron



ich wuerde fuer sowas attrib und xcopy nehmen:

mit attrib zunaechst mal alle archivierungsflags setzen:
attrib *.* +a /s

dann das a-flag bei dem einen verzeichnis wieder entfernen:
attrib images\sources\*.* -a

und dann xcopy anweisen nur die dateien mit gesetztem a-flag kopieren:
xcopy *.* ziel /s /i /a
da das sources verzeichnis keine zu kopierenden dateien enthaelt wird beim ziel auch kein sources verzeichis angelegt (falls leere verzeichnisse erstellt werden sollen /e statt /s)

das ist (imho) die eleganteste loesung.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche