Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch für bestimmte Dateien kopieren,komme nicht weiter

Frage Entwicklung Batch & Shell

Mitglied: apejovic

apejovic (Level 1) - Jetzt verbinden

03.09.2012, aktualisiert 16:37 Uhr, 5832 Aufrufe, 36 Kommentare

Hallo Gemeinde,

die Google Suche hat mich oft zu Eurem Board gebracht, leider finde ich keinen Lösungsansatz für mein problem.

Sollte ich doch im falschen bereich sein,dann bitte verschieben.

Ich versuche mal mein problem zu erläutern. Einmal im Monat muß ich ca. 10 Rechner (jeden Monat andere,nie die selben) abfahren und von dort jeweils ca. 15 Dateien kopieren. Die Dateien sind alles .db

Der Ordner befindet sich z.B. unter c:\anwendungsprogramm\

Die Ordnernamen bestehen immer aus 8 zahlen. Ich weiß nie welche.

Der Pfad wäre dann: c:\anwendungsprogramm\12345678\

Es existiert nur eine Partion. Der USB-Stick wo ich die Daten gerne als Ziel hinkopieren möchte, hätte somit immer den Laufwerksbuchstaben "D". Sollte immer so bleiben.

Um mir die Arbeit zu erleichtern wollte ich mir gerne eine Batch schreiben, die das für mich erledigt.

Stick rein, .bat ausführen, Glücklich sein.

Wenn jetzt noch der Ordnername vom Rechner mitübernommen würde,wäre es perfekt, oder
der Ordner wird nach dem Computernamen benannt (möglich?)

Habt Ihr eine Idee?

Dankeschön

Der Computername, bzw. die Info die ich benötige, steht auch noch in der boot.ini drin. Statt das 2 Systeme zur Auswahl stehen,wird hier nur die Info für den PC eingetragen.
36 Antworten
Mitglied: Pjordorf
03.09.2012 um 17:13 Uhr
Hallo,

Zitat von apejovic:
die Google Suche hat mich oft zu Eurem Board gebracht,
Das Hören wir doch gern

leider finde ich keinen Lösungsansatz für mein problem.
Den sollte es aber hier, gerade weil es auch um Batch und Dateien geht, mehr als einmal geben

Sollte ich doch im falschen bereich sein,dann bitte verschieben.
Sollte es im falschen Bereich sein, kannst du es auch selbst verschieben

Habt Ihr eine Idee?
Ideen haben wir hier viele. Ob dir diese aber helfen und oder gefallen? (jetzt mal Schwimmen gehen ist auch eine Idee)
Nun, warum gibst du uns nicht das was du schon hast (in code Blöcke) und sagst uns wo es genau in deinem Batch hapert und wo genau du schwierigkeiten hast. Dann können wir dir auch gezielt helfen und mit dir eine Lösungen erarbeiten (Kostenlos) welche dann bei dir funktioniert und dich als der Held darstehen lässt?

Und du ahnst es schon, jetzt kommen diese hässlichen Fragen die wir hier immer stellen wenn wir nicht wissen was du weist

Welches OS
Welche umgebung
Nur per USB stick möglich?
Auch per LAN / Netzanbindung möglich?
Rechte auf den Systemen?
Mal so zum Anfang....

Gruß,
Peter
Bitte warten ..
Mitglied: 60730
03.09.2012, aktualisiert um 17:59 Uhr
moin,

naja - aber das ist doch nur ein einzeiler?

xcopy quelle\*.db /s .\%computername%\

Wobei Dateien, die in einem Unterordner "Programmname" liegen und die ne suffix db haben - was macht denn dieses Programm, wenn eine andere Aktion auf die Dateien zugreift?

Das muß doch vorher am besten per Hand "sauber" beendet werden...

Gruß
Bitte warten ..
Mitglied: apejovic
04.09.2012 um 20:04 Uhr
Welches OS
Welche umgebung
Nur per USB stick möglich?
Auch per LAN / Netzanbindung möglich?

Windows Xp embedded
Umgebung?
Nur USB Stick
Nach meiner Arbeit ist es per Lan/Netzwerk möglich. Es muss leider vorher gemacht werden.
Bitte warten ..
Mitglied: apejovic
04.09.2012 um 20:17 Uhr
Zitat von 60730:
moin,

naja - aber das ist doch nur ein einzeiler?

> xcopy quelle\*.db /s .\%computername%\

Wobei Dateien, die in einem Unterordner "Programmname" liegen und die ne suffix db haben - was macht denn dieses
Programm, wenn eine andere Aktion auf die Dateien zugreift?

Das muß doch vorher am besten per Hand "sauber" beendet werden...

Gruß

Es greift nichts anderes auf diese Dateien zu. Benötige aber nur von den rund 400 db Dateien nur die 15.
Es muss kein Programm beendet werden

Ach ja, habe "volle" Administratorrechte.
Bitte warten ..
Mitglied: apejovic
04.09.2012, aktualisiert um 20:53 Uhr
Mein Anfang sieht so aus (natürlich für alle db Dateien)

|@echo off
|xcopy c:\programme\anwendung\Ordner8zahlen\1.db d:\ordner /i
|xcopy c:\programme\anwendung\Ordner8zahlen\2.db d:\ordner /i
|xcopy c:\programme\anwendung\Ordner8zahlen\3.db d:\ordner /i
|xcopy c:\programme\anwendung\Ordner8zahlen\4.db d:\ordner /i
|pause

Mein Problem besteht jetzt darin den "unbekannten" Ordner einzupflegen. Ich muss dazu sagen das Stapelverarbeitung bei mir sehr selten zu gebrauch kommt. Bin quasi Anfänger.

Eine Sonderheit habe ich vergessen,sorry.

Eine .db Datei hat folgenden Aufbau:

Mon1208.db
(monatsleistung)jahrmonat.db

Es ist also so das ich manchmal 2 Dateien habe von der obigen habe.Also:

Mon1208.db
Mon1209.db

Ganz selten 3.

Kann man das nicht mit dem Platzhalter lösen Mon*.db ??
Bitte warten ..
Mitglied: 60730
04.09.2012 um 20:58 Uhr
Moin,

Sag mal...

Bist kein profi, kannst aber schon echo off,

Hast 400db dateien, brauchst aber nur die 15, also die von 1 bis 4

Tu mal in einer antwort die ganze butter bei die fische, und nicht einzelne troepfchen....

Weil sonst sehe ich das mit dem haendischen ablauf deutlich einfacher und nervenschonender fuer uns schon kommen....
Bitte warten ..
Mitglied: apejovic
04.09.2012 um 21:35 Uhr
Zitat von 60730:
Moin,

Sag mal...

Bist kein profi, kannst aber schon echo off,

Hast 400db dateien, brauchst aber nur die 15, also die von 1 bis 4

Tu mal in einer antwort die ganze butter bei die fische, und nicht einzelne troepfchen....

Weil sonst sehe ich das mit dem haendischen ablauf deutlich einfacher und nervenschonender fuer uns schon kommen....

PN für Dich. Kannst ja im Forum kundtun ob es genug Butter ist.
Bitte warten ..
Mitglied: 60730
04.09.2012 um 21:52 Uhr
also nochmal gaaaaaaaaaaaaaaaaaaaaaanz von vorne....
Zitat von apejovic:
Hallo Gemeinde,
Ich versuche mal mein problem zu erläutern. Einmal im Monat muß ich ca. 10 Rechner (jeden Monat andere,nie die selben)
abfahren und von dort jeweils ca. 15 Dateien kopieren. Die Dateien sind alles .db
Der Ordner befindet sich z.B. unter c:\anwendungsprogramm\
Und gibt es irgendein Backup der Systeme?
(Ein gutes Backup ist nicht nur Gold wert, sondern verändert auch das sogenannte Archivbit einer Datei)

Die Ordnernamen bestehen immer aus 8 zahlen. Ich weiß nie welche.
  • solche Infos brauchen "wir" um dir zu helfen, gibts da noch mehr? (Infos?)
Der Pfad wäre dann: c:\anwendungsprogramm\12345678\

Es existiert nur eine Partion. Der USB-Stick wo ich die Daten gerne als Ziel hinkopieren möchte, hätte somit immer den Laufwerksbuchstaben "D". Sollte immer so bleiben.
  • wobei es bei einem Script, dass in einem USB Stick läuft tatsächlich egal ist, welchen Buchstaben der hat - aber lieber zuviel, als zuwenig infos...
Um mir die Arbeit zu erleichtern wollte ich mir gerne eine Batch schreiben, die das für mich erledigt.

Stick rein, .bat ausführen, Glücklich sein.

Wenn jetzt noch der Ordnername vom Rechner mitübernommen würde,wäre es perfekt, oder
der Ordner wird nach dem Computernamen benannt (möglich?)
  • siehe deer einzeilige Ansatz.

Habt Ihr eine Idee?

Dankeschön

Der Computername, bzw. die Info die ich benötige, steht auch noch in der boot.ini drin. Statt das 2 Systeme zur Auswahl stehen,wird hier nur die Info für den PC eingetragen.

Naja - üblicherweise gibts aber auch eine Systemvariable %computername%, die ist im Zweifel immer eindeutig, auch wenn einer mal ne Platte geklont und das anpassen der boot.ini versäumt hat.

nur mal so ein Ding aus der hohlen Hand....

E:\test>set test=%random%%random%%random%%random% 
 
E:\test>set test=%test:~-8% 
 
E:\test>echo %test% 
42273531 
md %test%
So nun habe ich (ok über das echo %test% kenne ich Ihn doch) einen Ordner erzeugt, der 8 Buchstaben hat und ich "kenne" den eigentlich nicht...
E:\test>echo test>%test%\test.db
Und darin liegt jetzt eine test.db Datei...

  • angenommen - es wäre ein deutsches System...

E:\test>dir *.db /s|find "Verzeichnis"
Verzeichnis von E:\test\42273531
0 Verzeichnis(se), 5.203.779.584 Bytes frei

Wüßte ich jetzt, wie der Ordner heist.(wenn ich das nicht vorher schon gewußt hätte)

"Aber" nochmal - das ist alles killefitz.
Du brauchst eine batch und du weißt mehr was die abfangen soll, als wenn ich / ein anderer hier ein xxxxxx Seiten langes alle möglichen Varianten (die vielleicht garnicht auftreten oder interessieren) abfangen würde.

Also Butter bei die Fische und vor allem - was ist an dem obigen Einzeiler "falsch"?
UNd darfst du z.b das Archivbit verändern, um beim nächsten Lauf die zu erkennen, die bereits gesichert wurden?

Nenn das Ziel mit allen möglichen Hürden, dann kann man auch einen Weg zimmern - andersherum funktionaggelt das nicht (oder nicht für umme)

Gruß
Bitte warten ..
Mitglied: apejovic
04.09.2012 um 21:53 Uhr
Ich arbeite in der Windenergiebranche als Inbetriebnehmer. Wenn die Anlagen den Testlauf beendet haben, müssen diese .db Dateien kopiert werden und ausgewertet werden.

Dies dauert pro Anlage ca. 20min. Mit einer Batch sollte es nur sekunden dauern. Damit kann man effizienter arbeiten.

Je nach Anlagenpark können es auch locker 100 Anlagen sein. Jede Anlage hat seine eigene Nummer,das ist dieser Ordner mit den 8 Zahlen der sich immer an c:\anwednungsprogramm\Anlagennummer\ befindet.

Noch mehr Infos nötig?
Bitte warten ..
Mitglied: apejovic
04.09.2012, aktualisiert um 22:19 Uhr
Zitat von 60730:
Und gibt es irgendein Backup der Systeme?
(Ein gutes Backup ist nicht nur Gold wert, sondern verändert auch das sogenannte Archivbit einer Datei)
Nein,ist nicht nötig.Dieses kopieren der Dateien wird nur einmalig pro Rechner gemacht.

> Die Ordnernamen bestehen immer aus 8 zahlen. Ich weiß nie welche.
  • solche Infos brauchen "wir" um dir zu helfen, gibts da noch mehr? (Infos?)
> Der Pfad wäre dann: c:\anwendungsprogramm\12345678\
Naja,die Info ist eigentlich,daß er immer aus 8 Zahlen besteht.Befindet Sich immer unter c:\programm\
>
> Es existiert nur eine Partion. Der USB-Stick wo ich die Daten gerne als Ziel hinkopieren möchte, hätte somit immer
den Laufwerksbuchstaben "D". Sollte immer so bleiben.
Es sollte nie konflikte wegen des Laufwerksbuchstaben entstehen.Gegenmaßnahmen sind natürlich willkommen.
* wobei es bei einem Script, dass in einem USB Stick läuft tatsächlich egal ist, welchen Buchstaben der hat - aber
lieber zuviel, als zuwenig infos...
Ich wollte nur anmerken,falls es eine große Bewandnis hat, wohin die dateien kopiert werden sollen.
> Um mir die Arbeit zu erleichtern wollte ich mir gerne eine Batch schreiben, die das für mich erledigt.
>
> Stick rein, .bat ausführen, Glücklich sein.
>
> Wenn jetzt noch der Ordnername vom Rechner mitübernommen würde,wäre es perfekt, oder
> der Ordner wird nach dem Computernamen benannt (möglich?)
  • siehe deer einzeilige Ansatz.
Da werden durch Wildcard alle .db Dateien kopiert, ist unnötig.Es müsste seperat per hand aussortiert werden.Dann brauche ich auch keine Batch mehr.
>
> Habt Ihr eine Idee?
>
> Dankeschön
>
> Der Computername, bzw. die Info die ich benötige, steht auch noch in der boot.ini drin. Statt das 2 Systeme zur Auswahl
stehen,wird hier nur die Info für den PC eingetragen.

Naja - üblicherweise gibts aber auch eine Systemvariable %computername%, die ist im Zweifel immer eindeutig, auch wenn einer
mal ne Platte geklont und das anpassen der boot.ini versäumt hat.

nur mal so ein Ding aus der hohlen Hand....

> E:\test>set test=%random%%random%%random%%random% 
>  
> E:\test>set test=%test:~-8% 
>  
> E:\test>echo %test% 
> 42273531 
> md %test% 
> 
So nun habe ich (ok über das echo %test% kenne ich Ihn doch) einen Ordner erzeugt, der 8 Buchstaben hat und ich
"kenne" den eigentlich nicht...
> E:\test>echo test>%test%\test.db
Und darin liegt jetzt eine test.db Datei...

  • angenommen - es wäre ein deutsches System...

> E:\test>dir *.db /s|find "Verzeichnis"
> Verzeichnis von E:\test\42273531
> 0 Verzeichnis(se), 5.203.779.584 Bytes frei

Ok,ich kann also eine bestimmte .db suchen um an den ordnernamen zu kommen.Wie pflegt man sowas ein im batch?
Wüßte ich jetzt, wie der Ordner heist.(wenn ich das nicht vorher schon gewußt hätte)

"Aber" nochmal - das ist alles killefitz.
Du brauchst eine batch und du weißt mehr was die abfangen soll, als wenn ich / ein anderer hier ein xxxxxx Seiten langes
alle möglichen Varianten (die vielleicht garnicht auftreten oder interessieren) abfangen würde.

Also Butter bei die Fische und vor allem - was ist an dem obigen Einzeiler "falsch"?
UNd darfst du z.b das Archivbit verändern, um beim nächsten Lauf die zu erkennen, die bereits gesichert wurden?

Nenn das Ziel mit allen möglichen Hürden, dann kann man auch einen Weg zimmern - andersherum funktionaggelt das nicht
(oder nicht für umme)

Gruß

Sollte ich etwas missverstanden haben,dann korriegiere mich bitte jemand.

Danke
Bitte warten ..
Mitglied: 60730
04.09.2012, aktualisiert um 22:42 Uhr
Da werden durch Wildcard alle .db Dateien kopiert, ist unnötig.
  • falsch - da werden alle .db unterhalb von c:\programm kopiert.
Du schreibst ja c:\programm und nicht c:\Programme - oder meinst du das?
Und soviele .db Dateien hat ein xp embedded nun auch wieder nicht.
Es müsste seperat per hand aussortiert werden.
  • anhand welcher Kriterien?
Dann brauche ich auch keine Batch mehr.
  • aber ich brauch jetzt nen fetten Snaps und ne Tüte Desinfektion, meine AusderNaseziehangel ist voll bis oben hin.
Bitte warten ..
Mitglied: apejovic
04.09.2012, aktualisiert um 23:27 Uhr
Prost


Das Anwendungsprogramm nennen wir mal Klarsichtfolie, die Anlage (und somit AUCH der Ordner im Windows-System unter Klarsichtfolie) heißt "24136857"

Mein Pfad lautet also: c:\klarsichtfolie\24136857\

Darunter befinden sich die benötigten .db Dateien (Sagen wir 5),welche ich gerne kopieren möchte; auf einen USB-Stick.
Die anderen hunderte brauche ich nicht.

Ich komme zum nächsten PC:

Mein Pfad lautet also: c:\klarsichtfolie\65478912\

Davon benötige auch wieder die 5 Dateien.


Sorry,falls ich mich zu kompliziert ausdrücke.Man meint ja immer,man drückt sich vernünftig aus.

Das habe ich bis jetzt zusammen gebastelt:

|@echo off
| set /P w= Testlaufdaten kopieren [Y]es / [N]o?
| if /I "%w%"=="y" goto Yes
| if /I "%w%"=="n" goto No
| echo Fehler: [%w%]
|goto ende
|
|:Yes
| echo "Copy Data"
|xcopy c:\klarsichtfolie\25110055\1.db f:\Testlauf /I /Q
|xcopy c:\klarsichtfolie\25110055\2.db f:\Testlauf /I /Q
|xcopy c:\klarsichtfolie\25110055\3.db f:\Testlauf /I /Q
|xcopy c:\klarsichtfolie\25110055\4.db f:\Testlauf /I /Q
|xcopy c:\klarsichtfolie\25110055\Mon*.db f:\Testlauf /I /Q
|goto ende
|
|:No
| echo "Copy aborted"
|goto ende
|
|
|:ende
| echo.
| pause
Bitte warten ..
Mitglied: 60730
05.09.2012 um 09:04 Uhr
moin,

Mein Pfad lautet also: c:\klarsichtfolie\24136857\

Darunter befinden sich die benötigten .db Dateien (Sagen wir 5),welche ich gerne kopieren > möchte; auf einen USB-Stick.
Die anderen hunderte brauche ich nicht.

1) Hast du diesen Einzeiler da oben jemals probiert?
2) warum zum teufel echo offt Ihr immer alle Infos weg - ist das ne Krankheit?
3) welche anderen hunderte Dateien? Haben die auch ne suffix .db?

01.
xcopy c:\klarsichtfolie\*.db /s .\%computername%\
Was passiert, wenn dieser einzeiler auf nem Stick liegt und der Programmname tatsächlich Klarsichtfolie heisst?

Eben.
Bitte warten ..
Mitglied: apejovic
05.09.2012 um 09:34 Uhr
Zitat von 60730:
moin,

> Mein Pfad lautet also: c:\klarsichtfolie\24136857\

> Darunter befinden sich die benötigten .db Dateien (Sagen wir 5),welche ich gerne kopieren > möchte; auf einen
USB-Stick.
> Die anderen hunderte brauche ich nicht.

1) Hast du diesen Einzeiler da oben jemals probiert?

Ja habe ich,funktioniert auch gut.Allerdings sind unter \klarsichtfolie\ noch andere Unterordner mit .db Dateien,die ich nicht benötige.

2) warum zum teufel echo offt Ihr immer alle Infos weg - ist das ne Krankheit?

Kann auch alles zu sehen sein,darum geht es ja nicht.

3) welche anderen hunderte Dateien? Haben die auch ne suffix .db?

Ja,haben Sie.


01.
> xcopy c:\klarsichtfolie\*.db /s .\%computername%\ 
02.
> 
Was passiert, wenn dieser einzeiler auf nem Stick liegt und der Programmname tatsächlich Klarsichtfolie heisst?

Eben.

Habe jetzt was neues probiert:

|@echo off
| set /P w= testdaten kopieren [Y]es / [N]o?
| if /I "%w%"=="y" goto Yes
| if /I "%w%"=="n" goto No
| echo Fehler: [%w%]
|goto ende
|
|:Yes
|
|xcopy c:\klarsichtfolie\Datena*.db /s .\%computername%\
|xcopy c:\klarsichtfolie\Datenb*.db /s .\%computername%\
|xcopy c:\klarsichtfolie\Datenc*.db /s .\%computername%\
|xcopy c:\klarsichtfolie\Datend*.db /s .\%computername%\
|xcopy c:\klarsichtfolie\Mon*.db /s .\%computername%\
|echo "Data copied"
|goto ende
|
|:No
| echo "Copy aborted"
|goto ende
|
|
|:ende
|echo.
|pause

Die Dateien die kopiert werden sollen sind im Batch mit richtigem Namen geschrieben. Ich muß trotzdem den Platzhalter setzen,damit diese Dateien kopiert werden. Kann mir das jemand erklären?

Scheint aber so zu funktionieren.....

Ich werde das mal heute testen an 2 Anlagen und melde mich nochmal.
Bitte warten ..
Mitglied: apejovic
05.09.2012, aktualisiert um 20:21 Uhr
Habe es zu 50% erfolgreich testen können.

Allerdings sind unterm c:\klarsichtfolie\ noch 2 weitere Ordner, die unter anderem die selben Dateinamen haben, wußte ich auch nicht.

Er kopiert aber aus jedem Ordner die Dateien und fügt sie in gleich benannte Ordner auf den Stick ein.

Also Computername\ordner1\db dateien
Computername\ordner2\db dateien
Computername\ordner3\db dateien

Frage mich immer noch,wie ich das mit dem Ordner lösen kann.

2 Fragen liebe Gemeinde. Was wäre einfacher?

1. Die überflüssigen 2 Ordner mit der Batch löschen nach dem kopieren (Ordner mit 8 Zahlenmuß übrig bleiben)?

2. Den Ordner mit den 8 zahlen per Batch suchen lassen und dann die Dateien kopieren?

@TimoBeil

Wie könnte ich deinen Script mit einpflegen?
Bitte warten ..
Mitglied: 60730
06.09.2012, aktualisiert um 00:23 Uhr
ok - wenns denn so ist, dann ist das eine Testnummer
E:\test>md db 
 
E:\test>cd db 
 
E:\test\db>md 12345678 
 
E:\test\db>echo x>.\12345678\1.db 
 
E:\test\db>md abcdefgh 
 
E:\test\db>echo x>.\abcdefgh\1.db 
 
E:\test\db>dir /s /b *.db 
E:\test\db\12345678\1.db 
E:\test\db\abcdefgh\1.db
Also nur die Ordner, die ausschliesschlich aus mindestens 8 Ziffern bestehen, sollen gefunden werden:

 E:\test\db>dir *.db /S |findstr [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] 
 Verzeichnis von E:\test\db\12345678
Beim deutschen System sieht das so aus, dich interessiert aber nur der 3 Teil - denn 8 ziffern <> Leerzeichen:
Und weil echo ne Prima Anzeige ist und echo off daher ... ach was reg ich ich auf.....

 E:\test\db>for /f "tokens=3" %a in ('dir *.db /S ^|findstr [0-9][0-9][0-9][0-9][ 
0-9][0-9][0-9][0-9]') do echo %a
Du willst die aber weiterverarbeiten?
E:\test\db>for /f "tokens=3" %a in ('dir *.db /S ^|findstr [0-9][0-9][0-9][0-9][ 
0-9][0-9][0-9][0-9]') do xcopy %a\*.db e:\db\ 
E:\test\db>xcopy E:\test\db\12345678\*.db e:\db\ 
E:\test\db\12345678\1.db 
1 Datei(en) kopiert
so das einzigste was du machen mußt, ist diese Demomimik an das anpassen, was ich dir oben geschrieben hab, mal for /? und Set /? eingeben und lesen und anhand der gewonnenen Infos das dann für ne Batch umschreiben.

Und wenn das dann läuft, darfst du soviele @echo offs reinmalen, bis der USBStick platzt
(achne , das war ja ein anderer)

N8
Bitte warten ..
Mitglied: apejovic
06.09.2012 um 14:44 Uhr
Also erstmal Danke für Deine Hilfe.

Ich versuche den ganzen Morgen das irgendewie umzuschreiben,aber es scheint nicht zu klappen.

Ich poste erstmal den original Code:

|set /P w= Copy Trialrun Data from WTG [Y]es / [N]o?
|if /I "%w%"=="y" goto Yes
|if /I "%w%"=="n" goto No
|echo Fehler: [%w%]
|goto ende
|
|:Yes
|xcopy c:\visupro\PowerDat*.db /s .\%computername%\
|xcopy c:\visupro\StatDat*.db /s .\%computername%\
|xcopy c:\visupro\MinAna*.db /s .\%computername%\
|xcopy c:\visupro\ErrDev*.db /s .\%computername%\
|xcopy c:\visupro\Mon*.db /s .\%computername%\
|echo "Data copied"
|goto ende
|
|:No
|echo "Copy aborted"
|goto ende
|
|:ende
|echo.
|pause

Ich versuche mit der Help Info das zu verstehen, ist aber nicht so einfach.Denke das liegt am mangelden background Wissen

Aber ich arbeite daran. Wie setze ich den Pfad im for Satz ein,damit er mir nicht aufm Stick die bereits vorhanden Ordner durchsucht?
Bitte warten ..
Mitglied: apejovic
06.09.2012 um 14:46 Uhr
Zitat von 60730:

E:\test\db>xcopy E:\test\db\12345678\*.db e:\db\
Wie kommt das zu Stande??
Bitte warten ..
Mitglied: 60730
06.09.2012, aktualisiert um 14:53 Uhr
Zitat von apejovic:
Zitat von 60730:

E:\test\db>xcopy E:\test\db\12345678\*.db e:\db\
Wie kommt das zu Stande??

  • durch das da:
01.
for /f "tokens=3" %a in ('dir *.db /S ^|findstr [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') do xcopy %a\*.db e:\db\ 
Bitte warten ..
Mitglied: apejovic
06.09.2012 um 16:23 Uhr
Zitat von 60730:
01.
> for /f "tokens=3" %%a in ('dir *.db /S ^|findstr [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') do xcopy %%a\*.db 
02.
> e:\db\  
03.
hier sollte es wohl dann "c:\visupro\" lauten,richtig? 
04.
> 

Wenn ich die Zeile vom Stick starte, dann findet er alle Ordner auf dem Stick,die bereits auf dem Stick waren.
Wie lasse ich die Schleife auf c:\visupro\ arbeiten und dabei die sachen aufm Stick kopieren?
Bitte warten ..
Mitglied: apejovic
06.09.2012 um 20:03 Uhr
Ok, falls ich es richtig verstanden habe, kann ich meine variable "a" durch ein Wort mit dem set befehl ersetzen und vermutlich später mit dem set weiterarbeiten, richtig?
Bitte warten ..
Mitglied: 60730
06.09.2012, aktualisiert um 20:15 Uhr
Schreib doch mal...

  • bist du zufälligerweise ein IT Prof und willst mich Ärgern?
Wie lasse ich die Schleife auf c:\visupro\ arbeiten und dabei die sachen aufm Stick kopieren?

01.
for /f "tokens=3" %%a in ('dir c:\visupro\*.db /S ^|findstr [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') do xcopy %%a\*.db .\%computername%\ 
Gwendoline, erlöse mich


Ich bin weg, gaaaaaaaanz weit weg
Bitte warten ..
Mitglied: apejovic
06.09.2012 um 20:28 Uhr
Zitat von 60730:
Schreib doch mal...

  • bist du zufälligerweise ein IT Prof und willst mich Ärgern?

Lol.....nein,wirklich nicht. Ich habe mir nur was in den Kopf gesetzt und möchte es gerne schaffen. Wenn auch mit mehr oder weniger Hilfe......Danke Dir.

Aber ich bin trotzdem stolz auf mein zusammengewürfeltes etwas.

Gleich mal testen........dann morgen nochmal in realen Bedingungen.
Bitte warten ..
Mitglied: apejovic
06.09.2012, aktualisiert um 20:48 Uhr
Ich bin's schon wieder.....ich trau mich garnicht mehr zu schreiben.

Es ist so:

unter c:\visupro\

befindet sich immer ein Ordner "25000" der behinhaltet (wie oben bereits erwähnt die selben Dateien). Dieser Ordner bzw die Dateien daraus werden nicht kopiert und das ist auch super so.

Jetzt ist es so,daß wenn ich oder meine kollegen mit unserer Arbeit fertig sind, dann kopieren wir den Ordner mit den 8 Zahlen (quasi als backup, na gut es gibt doch eins) und fügen ihm noch im Ordnernamen unsere Abteilung ein.

Der Original Ordner heißt also: 12345678

Dann kommt von uns die Bezeichnung Comm oder com davor oder dahinter. Manchmal mit Unterstrich, manchmal mit Leerzeichen dazwischen.

z.B. 12345678_comm oder 12345678 Com oder 12345678Comm

Also sind unter c:\visupro\ 12345678
25000
12345678comm


Also mit anderen Worten: Er kopiert aus dem richtigem Verzeichnis, möchte dann aber die Daten aus dem anderen comm Ordner überschreiben.

Kann man das auch noch beheben?

Ich weiß das echt zu schätzen, was IHR in solchen Foren für uns kleine User (die nach erfolgreicher Formation eines Datenträgers denken, die wären der Held) vollbringt.

Ein ernstes Dankeschön für Euch alle.
Bitte warten ..
Mitglied: 60730
07.09.2012, aktualisiert um 00:35 Uhr
1) Frag mich nicht, warum ich das mache ich weiß es nicht
2) Ich gebs zu, diese ganze Demoscheixxe hat dir nix gebracht, als "Lehrer" kann ich also getrost mit ner Nullnummer abziehen.

01.
for /f "tokens=3" %%a in ('dir c:\visupro\*.db /S ^|findstr [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]^|findstr /i /v "com"') do xcopy %%a\*.db .\%computername%\
Diese "ständigen" achja hier noch da noch und eigentlich ist alles ganz anders mit nem Lerneffekt auf der anderen Seite, gegen den ein Quantum Trost schon ne Steigerung wäre, soviel kann ich gar nicht Essen wie ich kotzen könnte.....

3) Ich gebs auf und tauche unter.
Jetzt ist mal ne ganz lange Reise mit der Never come Back Airline angesagt.

N8
Bitte warten ..
Mitglied: apejovic
07.09.2012, aktualisiert um 09:08 Uhr
Guten Morgen,

also ich finde es hat was gebracht. Du kannst es ja nicht sehen, wie sich meine Gehirnwindungen einen Wolf geschrubbt haben.

Deine Aufforderung (Aufgabenstellung) gegenüber mir, damit ich selber auf die Lösung komme, habe ich schon verstanden.

Doch wie gesagt, selbst mit dem lesen der Help bzw Info, ist es für mich schwierig,da ich mit so etwas wirklich fast nie arbeite.

In der Schule wäre es für mich ne "5". Warum sollte der Lehrer daran schuld sein?

Gibt's ein einfach zu verstehendes Buch über dieses Thema? Ernsthaft jetzt.



Also könnte ich für die Zukunft durch das "^" einen weiteren Befehl einsetzen?
Bitte warten ..
Mitglied: apejovic
07.09.2012 um 14:54 Uhr
Zitat von apejovic:

Also könnte ich für die Zukunft durch das "^" einen weiteren Befehl einsetzen?

Habe ich wohl missverstanden....

Kämpfe jetzt nur noch mit der Variablen "a" , also den unbekannten Ordner. Ein kluger Skript Schreiber,also ich nicht, wird wahrscheinlich zwischen der Schleife sagen können,mach aus der variablen einen Ordner. Der Ordnername wird ja jetzt nicht übernommen.

Gerne nur Tips, möchte meinen Sensei nicht noch weiter enttäuschen.
Bitte warten ..
Mitglied: apejovic
09.09.2012 um 19:57 Uhr
Ich habe den Batch erstmal wieder geändert in:
|@echo off
| set /P w= Copy Trialrundata from WTG [Y]es / [N]o?
| if /I "%w%"=="y" goto Yes
| if /I "%w%"=="n" goto No
| echo Fehler: [%w%]
|goto ende
|
|:Yes
|@echo off
|xcopy c:\visupro\errdev*.db /s .\%computername%\
|xcopy c:\visupro\minana*.db /s .\%computername%\
|xcopy c:\visupro\powerdat*.db /s .\%computername%\
|xcopy c:\visupro\statdat*.db /s .\%computername%\
|xcopy c:\visupro\mon*.db /s .\%computername%\
|echo "Data copied"
|
|rmdir /s/q .\%computername%\25000
|goto ende
|
|:No
| echo "Copy aborted"
|goto ende
|
|
|:ende
|echo.
|pause


Habe jetzt eine Zeile eingefügt um den überflüssigen Ordner "25000" samt inhalt, nach dem kopieren zu löschen.

Ich kämpfe jetzt mit dieser Zeile

|echo on
|FOR /f "tokens=*" %%a IN ('DIR .\%computername%\ /B /AD /S *com*') DO @echo del/S "%%a"
|echo.
|pause

Wie schaffe ich es,daß er nur den "PC-Namen"-Ordner durchsucht?
Bitte warten ..
Mitglied: apejovic
10.09.2012 um 18:02 Uhr
Hallo Leute!

Hab's hinbekommen. Ich musste leider einen festen Ordner für die Batch vergeben, um das Problem zu lösen.

Die Batch befindet sich nun in einem Ordner "Trialrun Data".

|@echo off
|set /P w= Copy Trialrundata from WTG [Y]es / [N]o?
|if /I "%w%"=="y" goto Yes
|if /I "%w%"=="n" goto No
|echo Fehler: [%w%]
|goto ende
|
|:Yes
|xcopy c:\visupro\errdev*.db /s .\%computername%\
|xcopy c:\visupro\minana*.db /s .\%computername%\
|xcopy c:\visupro\powerdat*.db /s .\%computername%\
|xcopy c:\visupro\statdat*.db /s .\%computername%\
|xcopy c:\visupro\mon*.db /s .\%computername%\
|echo "Data copied"
|
|rmdir /s/q .\%computername%\25000
|FOR /f "tokens=*" %%b IN ('dir "Trialrun Data" /B /AD /S *com*') DO rmdir /S /q "%%b"
|goto ende
|
|:No
|echo "Copy aborted"
|goto ende
|
|:ende
|echo.
|pause

Der findstr befehl hat auf manchen rechnern nicht funktioniert.Die Arbeit wäre nicht zu groß,aber unnötig um den Path im System Ordner zu erweitern. Deswegen diese Lösung.

Danke für Eure Hilfe, und besonderer Dank an LimboSeil TimoBeil.
Bitte warten ..
Mitglied: 60730
11.09.2012, aktualisiert um 08:19 Uhr
Moin,

Auf Bibers freundlichen Hint hin...

Aber bitte wen du batche hier verfasst, nutze die Code Tags (zitiere diese Antwort oder schaue unter Formatierungshilfe nach)
Zitat von apejovic:
Hallo Leute!

Hab's hinbekommen. Ich musste leider einen festen Ordner für die Batch vergeben, um das Problem zu lösen.

Die Batch befindet sich nun in einem Ordner "Trialrun Data".

01.
rem @echo off 
02.
:runornot 
03.
set /P w= Copy Trialrundata from WTG [Y]es / [N]o? 
04.
IF /i not "%w%"=="y" if /i not "%w%"=="n" echo Fehler Falsche EIngabe: [%w%] 
05.
if /I "%w%"=="y" goto Yes 
06.
if /I "%w%"=="n" goto No 
07.
goto runornot 
08.
 
09.
:Yes 
10.
 
11.
rem warum soviele Zeilen, wenn sich doch nur eine "Sache" aendert? 
12.
for %%a in (errdev minana powerdat statdat mon) do ( 
13.
           xcopy c:\visupro\%%a*.db .\%computername%\ ||echo fehler beim kopieren von %%a 
14.
           )   
15.
echo "Data copied" 
16.
rem und die Zeile verstehe ich nicht 
17.
rmdir /s/q .\%computername%\25000 
18.
rem diese theoretisch schon eher, gibts zwei "backups" 
19.
FOR /f "tokens=*" %%b IN ('dir "Trialrun Data" /B /AD /S *com*') DO rmdir /S /q "%%b" 
20.
 
21.
goto ende 
22.
 
23.
:No 
24.
 
25.
echo "Copy aborted" 
26.
goto ende 
27.
 
28.
:ende 
29.
echo. 
30.
pause

Der findstr befehl hat auf manchen rechnern nicht funktioniert.
Mit welcher Fehlermeldung?

Die Arbeit wäre nicht zu groß,aber unnötig um den Path im System Ordner zu erweitern.
Aber üblicherweise ist beim echten XP findstr im Path (%windir%\system32) enthalten, von daher versteh ich das "so" nicht - welche Meldung gabs denn und warum hast du den Pfad - wenn die nicht in %windir%\system32 drin ist - nicht vorangestellt?
Deswegen diese Lösung.
Danke für Eure Hilfe, und besonderer Dank an LimboSeil TimoBeil.
Danke fürs Danke, war aber auch ne harte Nummer....

PS: Ich bin zwar hier im Moment der einzige, aber warum - ist doch im B Bereich beheimatet?
Bitte warten ..
Mitglied: apejovic
11.09.2012 um 20:30 Uhr
Zitat von 60730:
rem warum soviele Zeilen, wenn sich doch nur eine "Sache" aendert?
Newbee halt.....werde mich bessern.Altbewährtes war nie schlecht.Hauptsache for befehle werden demnächst noch angenommen.
rem und die Zeile verstehe ich nicht
rmdir /s/q .\%computername%\25000
Da der findstr nicht funktionierte,musste ich zurück zum alten weg. Daran gefiel mir besonders,nach dem PCNamen auch den Anlagenordner im Pfad zu haben. Aber es wurden die anderen beiden Ordner mitkopiert.Deswegen kann ich damit, einen Ordner löschen.Für den anderen ordner (mit com drin) musste ich die Zeile hier drunter hinzufügen.
rem diese theoretisch schon eher, gibts zwei "backups"
FOR /f "tokens=*" %%b IN ('dir "Trialrun Data" /B /AD /S *com*') DO rmdir /S /q "%%b"
2 Backups??

Mit welcher Fehlermeldung?
findstr is not recognized as an internal or external command operable program or batch file
> Die Arbeit wäre nicht zu groß,aber unnötig um den Path im System Ordner zu erweitern.
aus dem Grunde,weil ich nicht weiß,in wie fern das system vielleicht abgespeckt wurde (Sicherheit?)
Jedenfalls möchte ich die .bat als .exe mit meinen Kollegen teilen,und nicht jeder hat das selbe wissen um den Path zu erweiterten. Außerdem sollte die Bat Arbeit und Zeit sparen.
Danke fürs Danke, war aber auch ne harte Nummer....
Sorry dafür,ehrlich.
PS: Ich bin zwar hier im Moment der einzige, aber warum - ist doch im B Bereich beheimatet?
Vielleicht,weil du zu schnell geholfen hast und jetzt mußt du den scheiß ausbaden,......LOL ;o)

Nochmals Danke

Demnächst im Forum: Warum wird meine in .exe umgewandelte .bat als Virus erkannt.....muß mich noch einlesen..
Bitte warten ..
Mitglied: Pjordorf
11.09.2012 um 20:43 Uhr
Hallo,

Zitat von apejovic:
Demnächst im Forum: Warum wird meine in .exe umgewandelte .bat als Virus erkannt.....muß mich noch einlesen..
Ich hol schon mal Popcorn

Gruß,
Peter
Bitte warten ..
Mitglied: apejovic
11.09.2012 um 21:01 Uhr
Freu mich, wenn ich Euch unterhalten kann.
Bitte warten ..
Mitglied: 60730
11.09.2012, aktualisiert um 21:24 Uhr
okokok...........

findstr is not recognized as an internal or external command operable program or batch file

bedeutet offensichtlich beim embedded ist das nicht dabei.
Da die batch aber doch eh auf dem Stick läuft, kopiere die exe einfach von nem Pro oder Windows 2003 oder was auch immer du sonst noch findest auf den Stick in den Ordner, wo die Batch steckt.

Denn beim USB Stick ist "zuviel" schreiben und löschen eher suboptimal in Sachen Lebensdauer.

Demnächst im Forum: Warum wird meine in .exe umgewandelte .bat als Virus erkannt.....muß mich noch einlesen..

Dann male aber ein großes

Achtung: Nicht für den alten Sack mit der Augenklappe oben in die erste Zeile.

Oder besser such mal nach beiträgen (u.a von mir) warum dieses bat2exe gedöhnse voll in die Tonne getreten werden sollte.
Dazu eingach ein + gefolgt von nem Leerzeichen schreiben. Denn mit meinem Alzheimer passieren mir manchmal kosmische Sachen.

Und wegen dem com/2500 ich dachte gelesen zu haben, der com Ordner ist unter dem 2500 und den ballerst du doch via /S /Q gnadenlos wech.

Gruß N8 Over & out
Bitte warten ..
Mitglied: apejovic
11.09.2012 um 21:56 Uhr
Zitat von 60730:
Denn beim USB Stick ist "zuviel" schreiben und löschen eher suboptimal in Sachen Lebensdauer.
Firma zahlt......
+ Achtung: Nicht für den alten Sack mit der Augenklappe oben in die erste Zeile.
Dachte an V.I.P. Bereich für Dich.......nur lesen nicht kommentieren...........

Mit C fange ich erst garnicht an......dann wird es halt als Virus erkannt....pff

Danke.Schöne Woche noch.bis demnächst
Bitte warten ..
Mitglied: Pjordorf
11.09.2012 um 22:12 Uhr
Hallo,

Zitat von apejovic:
Mit C fange ich erst garnicht an
Dann nimm Basic....

dann wird es halt als Virus erkannt....pff
Und mit der richtigen falschen Einstellung eines ich suche nach Viren auch wenn du es nicht willst Programm ist dann deine Exe weg gebratzt und du kommst wieder hierher. Ne ne. Lass das mit dem Bat to Exe gedöhns. Und ein verhindern das andere dein Kopierwerk sehen können kannst du damit eh nicht, da hierbei immer temporäre Dateien (hier deine BAT Datei in klarschrift) vorher abgelegt werden. Also, da der Nutzen gleich Null ist und du kein Virus bist spar dir den Tüdelkram das in einer Exe packen zu wollen. Den Virus bekommst du so eh nicht weg

Gruß,
Peter
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...