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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 117301
Url: https://administrator.de/contentid/117301
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
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
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
Hallo Ludger und willkommen im Forum!
Etwas abgekürzt (und gänzlich ungetestet ) etwa so:
Grüße
bastla
[Edit] Umleitung einer ev Fehlermeldung bei "dir" durch "2>nul" ergänzt [/Edit]
Etwas abgekürzt (und gänzlich ungetestet ) 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!)
bastla
[Edit] Umleitung einer ev Fehlermeldung bei "dir" durch "2>nul" ergänzt [/Edit]
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
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