ludger
Goto Top

Batch Datei öffnet gesuchte Datei

Hallo,
ich beschäfige mich im Moment mit einer kleinen Batchdatei Aufgabe, die ich leider nicht alleine lösen kann.
Hier im Forum scheinen erfahrene User speziell auch aus dem Bereich Batch Befehl zu sein, sodass ich hoffe hier einen guten Tip zu erhalten.

Hier meine Aufgabe
In einem Verzeichnis (keine Unterverzeichnisse) gibt es Dateien die alle mit einer 4 stelligen Zahl beginnen (0001 – 9999)

Ich möchte durch Eingabe der Zahl (zB 54)
Die entsprechende Datei suchen und öffnen.

Problem dabei ist, dass nach der Zahl weiteren Namensteil kommt und auch unterschiedliche Dateitypen möglich sind.
(z.B. C:\Dokumente\0024_Handout.pdf) oder auch C:\Dokumente\0025_Landschaft.jpg
Sicher ist eben nur diese Zahl am Anfang des Dateinamens, und das jede Zahl nur einmal vorkommt..

Hier mein Versuch:

set /p nummer=Bitte die Dokumentnummer eingeben:

If %nummer% geq 1000 goto vierstellig

If %nummer% geq 100 goto dreistellig

If %nummer% geq 10 goto zweistellig

set full=000

goto weiter

:zweistellig
set full=00
goto weiter

:dreistellig
set full=0
goto weiter

:vierstellig
rem set full=""

:weiter

set var=C:\Dokumente\%full%%Nummer%*.*

set datei=dir %var%
%datei%


Vielleicht hat jemand eine Idee wie es weitergeht. Der Suchstring für die Diraufgabe ist ok. Jetzt muß der tatsächliche Name ermittelt werden, damit das Dokument dann geöffnet werden kann. Ich hoffe, dass Ihr Euch über diese hemdsärmelige Lösung nicht zu sehr amüsieren müsst.
Wenn es einen ganz anderen Lösungsansatz gibt werde ich den gerne übernehmen.

Schon mal vielen Dank im voraus an alle, die einen Moment für mich mitdenken.

Ludger

Content-ID: 117301

Url: https://administrator.de/contentid/117301

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

holzholer
holzholer 02.06.2009 um 16:06:25 Uhr
Goto Top
Hallo,

versuch mal folgendes:
dir /b C:\Dokumente\%full%%Nummer%*.*

das hier sollte dir eigentlich den Dateinamen (ohne Pfad) ausgeben. Jetzt musst du das nur noch in dein "set Datei=" pipen.

Wenns mit Pfad sein soll noch den Parameter /S anhängen. Dann dürfen da aber wirklich keine Unterverzeichnisse sein, weil die sonst auch gelistet werden.

Grüße
bastla
bastla 02.06.2009 um 16:20:30 Uhr
Goto Top
Hallo Ludger und willkommen im Forum!

Etwas abgekürzt (und gänzlich ungetestet face-wink) etwa so:
@echo off & setlocal
set "Basis=C:\Dokumente"  

set /p nummer=Bitte die Dokumentnummer eingeben:
set "Nr=0000%nummer%"  
set "Nr=%Nr:~-4%  

set datei=
for /f "delims=" %%i in ('dir /b "%Basis%\%Nr%*.*" 2^>nul') do set "datei=%Basis%\%%i"  
if defined datei ("%datei%") else (echo %nummer% nicht gefunden!)  
Grüße
bastla

[Edit] Umleitung einer ev Fehlermeldung bei "dir" durch "2>nul" ergänzt [/Edit]
Ludger
Ludger 02.06.2009 um 20:07:33 Uhr
Goto Top
Hallo Bastla,

vielen Dank. Genau das was ich beschrieben habe, hast Du hinbekommen.
Es gibt allerdings jetzt ein Problem mit Word Dateien, die Makros enthalten.

In Word selbst ist die Sicherheitsstufe auf Mittel gestellt, sodaß beim normalen öffnen noch die Zwischenfrage kommt, ob die Makros aktiviert werden sollen.
Das sollte am besten auch so bleiben.
Nur leider beim Öffnen über Makro kommt die Meldung
"Die Makros in diesem Projekt sind deaktiviert"

Kann man diesen Punkt irgendwie abfangen.

Danke schon mal bis hierhin

Ludger
Ludger
Ludger 02.06.2009 um 20:09:22 Uhr
Goto Top
Hallo Holzholer,

Danke für den Tip. Ist schon die richtige Richtung gewesen. Bastla hat da noch ein bisschen weiter ausgeholt und für meine Zwecke fast eine Punktlandung hinbekommen.

Vielen Dank noch mal und vielleicht bis zum nächsten Mal.

Ludger
bastla
bastla 02.06.2009 um 20:25:11 Uhr
Goto Top
Hallo Ludger!

Was meinst Du mit "Öffnen über Makro"?

Das Öffnen per Batch sollte sich nicht von einem Öffnen per Direkteingabe des Dateipfades an der Kommandozeile oder einem Doppelklick auf die Datei unterscheiden (zumindest für eine Excel2003-Datei mit Makro und Sicherheitseinstellung "Mittel" habe ich das eben getestet) ...

Grüße
bastla
Ludger
Ludger 03.06.2009 um 22:46:36 Uhr
Goto Top
Hallo Bastla,

mit Öffnen über Makro meinte ich die Batch Datei.
Der Fehler war übrigens nach einem Neustart weg und ist nicht wieder erschienen.
Daher hattest Du schon recht mit Deiner letzten Meldung.

Danke nochmals

Mein Problem ist damit gelöst.