DOS mehrer Dateien finden und gemeinsam ablegen

OP #1467754
Lesenswert?
• ▲
▼
Das Problem.
in einem Unterverzeichnis gibt eine nicht bekannte Anzahl 
Unter-Unterverzeichnissen, die ständig größer oder kleiner werden kann.
In jedem dieser Unter-Unterverzeichnisse kann sich (neben ganz vielen 
anderen Dateien) eine Datei, die Messdaten beinhaltet, befinden. Diese 
heißt in allen Unterverzeichnissen gleich.

Einem Programm, dass diese Daten lesen und verarbeiten kann, müssen nun 
diese Dateien via Kommandozeile zugeführt werden.
Da immer mehrere Dateien vorhanden sein können, können die Dateien nicht 
zusammen in eine Verzeichnis kopiert werden, aus dem sie verarbeitet 
werden, es sei denn, man würde sie umbenennen. Ein alles erschlagender 
Copy- Befehl kann aber bei der Umbenennung die Dateien z.B. nicht 
durchnummerieren, oder doch?! und ich weiß nur nicht wie?
Eine Batch-Datei kann die einzelnen Messgerätedateien nur einzeln dem 
Konverter zuführen.
Der Weg, die Verzeichnisse alle zu Fuß abzuklappern, ist nur von 
geringem wert, da eben immer wieder neue Verzeichnisse dazu entstehen 
können.
Ich weiss dass es mit LINUX einfacher ginge aber es muss nun mal mit DOS 
/ Windoofs laufen, und mit einer Batch-Datei.
Hat jemand eine Idee?
Gast #1467764
Lesenswert?
• ▲
▼
Was versteht du unter Dos? Eine Dos-Box im Windows oder ein richtiges 
Dos?

die Liste der Dateien bekommt man mit dir /s /b "dateiname.xxx" dies 
kann man in eine Datei umleiten und dann diese Datei mit einer for 
schleife abarbeiten (eventuell auch ohne die zwischen Datei). Es gibt 
auch das unix find für Windows da kann man einfach schreiben

find . -name dateiname.xxx --exec programm {} \;
Gast #1467906
Lesenswert?
• ▲
▼
ach ja,
Super Idee eigentlich.
Ich versuche es gerade hinzukriegen, scheitere aber an meinen 
rudimentären LINUX-Kenntnissen

Der Konverter liegt auf einem anderen Laufwerk, unter Windows bei
p:\konverter.exe aber find bzw. jetzt natürlich -exec kennt 
p:\konverter.exe natürlich nicht. Wie muss das in diesem Fall richtig 
heißen?

Quelle ist die gefundene Datei, also {}
Ziel ist c:\Dokumente und 
Einstellungen\Benutzer\Desktop\ziel(+datum_und_Sekunde_der_Umsetzung).cs 
v

Wie setzt man das zusammen?
{\/Dokumente und Einstellungen/Benutzer/Desktop/ziel%A DX.csv} wird ja 
wohl ehr nicht funktionieren ...
Gast #1467946
Lesenswert?
• ▲
▼
ähm, nein.
Das "find" klappt super.
Das -exec streikt.
missing argument to "-exec"
ist alles was kommt, egal ob ich
/p/konverter.exe
"p:\koverter.exe"
"/p/konverter.exe"
oder mit ""
oder oder oder eintippe
#1467996
Lesenswert?
• ▲
▼
tex schrieb:
> exec ist auch in  \Bin nicht vorhanden...
> vielleicht klemmt es darum

-exec ist nicht der Aufruf eines Programmes namens exec, sondern ein
Parameter an find (der die Ausführung des folgenden Kommandos bewirkt,
das wiederum muß vorhanden sein).

Ich würde mal ein Programm testweise aufrufen, das im Standardsuchpfad
gefunden wird (bzw. deinen Konverter dazu bringen, daß er über
PATH erreichbar ist) und dann ohne Pfad aufrufen.
Gast #1468253
Lesenswert?
• ▲
▼
Vielen Dank an alle die geholfen haben.

Das Problem ist offenbar da zu suchen dass Find das Ergebnis der Suche 
in den {} an Linux-Pomponenten wie z.B. cp weitergibt, jedoch nicht an 
andere Programme. Darum liefert

find . -name "*.csv" -exec"" echo {} \;""
so viele Leerzeilen, wie Einträge gefunden wurden aber keine lesbar 
Ausgabe.

Wenn noch jemand eine praktikable Idee hat...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren