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?
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 {} \;
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 ...
vermutlich ein leerzeichen Problem da muss man noch mit " arbeiten. find "c:\Dokumente und Einstellungen\Benutzer\Desktop\" -name "*.csv" --exec p:\konverter.exe \"{}\" \; so in der Art.
ä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
werden die Laufwerke wie P: bei dir unter einem andere Namen eingeblendet? Dann natürlich den nehmen. Vielleicht zeigt das der Befehl mount (ohne weitere Parameter)?
@Klaus p: wird im mount als p/ angezeigt, darum die oben probierten Varianten @Peter nein, gleicher Fehler missing argument to '-exec'
exec ist auch in \Bin nicht vorhanden... vielleicht klemmt es darum
kann es sein das du das Windows find und nicht das Unix-Find für Windows nuztzt?
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.
Muss es wirklich eine Batch sein? Falls es nur darum geht das Ganze unter Windows laufen zu lassen wäre evtl. VBS auch eine Option.
@Peter find -version gibt GNU find version 4.1 zurück Ist aus dem WINAVR-Paket. Gibt es bessere?
@ Klaus das wäre z.B. find . -name "*.csv" -exec echo {} \; gewesen? hatten wir schon mit missing argument to '-exec' als Ergebnis
nebenbei: ich schreibe die "{}" und das ";" unter Linux auch immer in Gänsefüßchen. Vielleicht brauchst du das hier ja auch so, weiß ich aber nicht.
es geht mit find . -name "*.csv" -exec"" echo {} \;"" ich probiere mal weiter... nehme jederzeit gerne Tips an
ich traue mich ja kaum, eine bash als Interpreter vorzuschlagen statt des kranken DOS-cmd...
Vorschlagen kannst Du es, aber ich kann wohl nicht damit umgehen. Wenn Du Dich CVFR aus FL95 zum Approach auf EDDI 25 links anmeldest... das würde ich verstehen..
es krankt offenbar an der Schreibweise Find übergibt \Dokumente und Einstellungen/Benutzer/Desktop und die WIN-Software erwartet \Dokumente und Einstellungen\Benutzer\Desktop
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...
so geht es bei mir find -name "*.exe" -exec "c:\windows\system32\attrib.exe" "{}" ;
Da kommt bei mir nur der übliche missig argument .. Meldung Was ist das für ein WinLinux / WinUnix das Du benutzt?
mit meinem Tool funktioniert das noch immer nicht, aber ich kann jetzt das Tool über eine Batch-Datei aufrufen und ich denke das bekomme ich irgend wie hin. Vielen Dank für die Hilfe tex
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.