Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Batch oder VB Script

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
11.08.2008, 13:36 Uhr
KFC Embryo
Ein Huhn


Hallo,

ich habe ein Problem und möchte es euch kurz erläutern.

Ich hab ein Archiv mit mehreren Dateien (.tif).
Es geht jetzt darum diese Dateien anhand ihrem Dateinamen zu sortieren.

Es sollen alle Dateinamen die nach 2004 erstellt wurden also all die, die eine 2004, 2005, 2006, 2007 und 2008 im Dateinamen haben ausgedruckt werden.

Alternativ sollen die jüngeren Dateien, also die vor 2004 in einen Ordner geschmissen werden.

Jetzt meine Frage:

Was nehme ich dafür am besten VB Script oder Batch.
Und wenn Batch wie kann ich eine Überprüfung (nach 2004, etc.) auf den Dateinamen anwenden?

Danke euch schon einmal im Voraus.

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2008, 18:27 Uhr
KFC Embryo
Ein Huhn


Hallo,

vll noch einmal zur Verdeutlichung:


Code:

@echo off

dir /s N:\steuern

dir /b/s /O:D N:\steuern\*2004???.tif || dir /b/s /O:D N:\steuern\*2004??????.tif
dir /b/s /O:D N:\steuern\*2005???.tif || dir /b/s /O:D N:\steuern\*2005??????.tif
dir /b/s /O:D N:\steuern\*2006???.tif || dir /b/s /O:D N:\steuern\*2006??????.tif
dir /b/s /O:D N:\steuern\*2007???.tif || dir /b/s /O:D N:\steuern\*2007??????.tif
dir /b/s /O:D N:\steuern\*2008???.tif || dir /b/s /O:D N:\steuern\*2008??????.tif




Ich habe die "||" auch schon durch "&" ersetzt dann listet er aber Dateien doppelt auf.
Mein Problem ist denke ich ganz klar die Abfrage.

Kann ich einen String in einem Dateinamen prüfen?
Denn wenn ich das so mache wie ich es oben stehen habe dürfen die Dateinamen nur in diesem Format auftauchen sollte aber nur ein Zeichen mehr oder weniger enthalten sein, was sehr wahrscheinlich ist bei 16 000 Dateien, gehts es den Bach runter.

Weiterhin sollen doppelt Auflistungen unterdrückt werden und auch nicht ausgedruckt werden.
Da müsste man noch jedes Verzeichnis mit jedem vergleichen bzw. jede Datei mit jeder.

Danach müsste das ganze gedruckt werden (ELO printer).
Die Wahl des Druckers wird nicht berücksichtigt.

Ich habe mich oben bestimmt ein bisschen undeutlich ausgedruckt aber ich denke an dem "Batch Code" oben wird deutlich was ich machen möchte.

Wäre cool wenn mir da jemand dabei helfen könnte.
Ich weiß ist nicht einfach aber vll kann mir einer von euch dabei helfen.

Danke.

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.08.2008, 19:51 Uhr
0xdeadbeef
Gott
(Operator)


Lad dir am besten Cygwin runter und mach's mit find. Das sollte dann etwa so aussehen:

Code:
find . -name '*200[4-8]*'


...oder auch gleich verschieben:

Code:
find . -name '*200[4-8]*' -exec mv '{}' neues_verzeichnis \;


Die Windows-Platten findest du in der Cygwin-Shell unter /cygdrive/c, /cygdrive/d etc. Es sollte, glaube ich, so auch in der Windows-Shell gehen, wenn du Cygwin im PATH hast, aber probiert hab ich das nie.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.08.2008, 20:33 Uhr
KFC Embryo
Ein Huhn


Ich dachte der Befehl "Find" wäre nur dazu da die Datei an sich auszulesen?

Ist mit deiner Version auch garantiert das alle Unterverzeichnisse abgesucht werden?

Danke.

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.08.2008, 21:30 Uhr
KFC Embryo
Ein Huhn



Code:

@echo off

dir /b/s /O:D C:\steuern\*%2004%?????????????????????.tif
dir /b/s /O:D C:\steuern\*%2005%?????????????????????.tif
dir /b/s /O:D C:\steuern\*%2006%?????????????????????.tif
dir /b/s /O:D C:\steuern\*%2007%?????????????????????.tif
dir /b/s /O:D C:\steuern\*%2008%?????????????????????.tif




Ich hab jetzt mal weiter gemacht ohne Cygwin und ich kam zu dem gewünschten Ergebnis.
Jetzt möchte ich allerdings doppelt Auflistungen vermeiden, gibt es da einen eifnachen Befehl für?

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.08.2008, 21:59 Uhr
0xdeadbeef
Gott
(Operator)


Nein, POSIX find kann auch gleich etwas mit der Datei anstellen.

Ja, POSIX find durchsucht auch Unterverzeichnisse. Alle, sofern nicht anders angegeben.

DOS hat, wenn ich mich recht entsinne, ebenfalls einen find-Befehl, der allerdings deutlich weniger mächtig ist; deswegen cygwin.

Was deine Batch-Datei da angeht, Batch-Dateien unterstützen auch eine rudimentäre for-Schleife, allerdings weiß ich die Syntax grad nicht aus dem Kopf.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.08.2008, 08:42 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oder die Gnu utilities for windows: http://unxutils.sourceforge.net/ (sind zwar etwas älter, funktionieren aber.... imho gabs irgendwo mal noch nen neueren build davon, find grad aber die url nicht)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.08.2008, 13:33 Uhr
KFC Embryo
Ein Huhn


Hallo,

so ich habe es jetzt mal weiter mit meiner Lösungsvariante weiter gemacht.


Code:

echo off


for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2004%?????????????????????.tif ') do (
xcopy "%%a" c:\2004-2008 /i/c/y
)

for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2005%?????????????????????.tif ') do (
xcopy "%%a" c:\2004-2008 /i/c/y
)

for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2006%?????????????????????.tif ') do (
xcopy "%%a" c:\2004-2008 /i/c/y
)

for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2007%?????????????????????.tif ') do (
xcopy "%%a" c:\2004-2008 /i/c/y
)

for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2008%?????????????????????.tif ') do (
xcopy "%%a" c:\2004-2008 /i/c/y
)




Problem ist jetzt nur das automatische überschreiben doppelter Dateien (Xcopy).
Das versuche ich so abzufangen in dem ich ihnen beim kopieren Nummern geben:

Also erste Datei die kopiert wird erhält in ihren Dateinamen eine 1 u.s.w.

Ein anderen Lösungsansatz wäre, dass ich hingehe und sie direkt drucke, ohne sie vorher sortiert in ein neues Verzeichnis zu kopieren.
Dann habe ich das Problem ausgeschlossen doppelte Dateien zu verlieren da der ELO -printer gedruckte Dateien mit einem Zeitstempel ablegt.

Ja ich weiß meine "?" sind unkonventionell aber effektiv.
Was haltet ihr für die beste Lösung?

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.08.2008, 16:01 Uhr
KFC Embryo
Ein Huhn


So jetzt habe ich ja das nächste Problem.


Code:

echo off


for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2004%?????????????????????.tif ') do (
Echo Test
rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo /pt "%1" "%2" "%3" "%4"

)

Pause



So jetzt habe ich mal die Dateien die eine 2004 im Dateinamen enthalten.
Problem ist das wenn ich oben den Befehl ausführe er nix macht.

Wie kann ich denn die Druckfunktion von Windows aufrufen?

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.08.2008, 20:46 Uhr
Kest
saint


"Windows PowerShell" wäre auch 'ne Alternative.
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: