Batch-Datei die nach einem bestimmten Dateinamen sucht....
Hallo!
Ich suche ein Programm,was unter Doss 6.22 läuft, zum Aufrufen einer bestimmten Datei.
Das ganze sollte so funktionieren:
1.Man startet das Prgramm
2. Es erscheint eine Abfrage, wo man den Namen der aufzurufenden Datei mit Endung eingibt
3. Das Programm sucht die Datei und öffnet sie mit einem Editor (....bei mir sollte die Datei mittels Word geöffnet werden)
4. Eventuelle Abfrage ob weitere Dateien gesuchten werden sollen.
Danke, Gruss Enno
Ich suche ein Programm,was unter Doss 6.22 läuft, zum Aufrufen einer bestimmten Datei.
Das ganze sollte so funktionieren:
1.Man startet das Prgramm
2. Es erscheint eine Abfrage, wo man den Namen der aufzurufenden Datei mit Endung eingibt
3. Das Programm sucht die Datei und öffnet sie mit einem Editor (....bei mir sollte die Datei mittels Word geöffnet werden)
4. Eventuelle Abfrage ob weitere Dateien gesuchten werden sollen.
Danke, Gruss Enno
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148552
Url: https://administrator.de/contentid/148552
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
10 Kommentare
Neuester Kommentar
Hmm so alt bin ich nicht, aber das müssten doch ganz normale CMD-Befehle sein oder?
Wenn ja versuchs mal so (ungetestet):
Wenn ja versuchs mal so (ungetestet):
@echo off & setlocal
::HIER MUSST DU DEINEN WORD PFAD EEINSETZEN( aber die " " lassen)
set word="C:\Programme\Office\Word.exe"
:Drive
echo.
set /p "drive=Laufwerk angeben (z.B.: C:\ ): "
if not defined drive goto :Drive
:Datei
set /p "datei=Dateinamen mit Endung angeben: "
if not defined datei goto :Datei
for /f "delims=" %%a in ('dir "%drive%"|find /i "%datei%"') do start "word" "%word%" "%%a"
::Wobei ich mir nicht sicher bin ob die Parameterübergabe so klappt
pause
Hallo Karsten.
DOS bedeutet in diesem Fall aber auch, dass es nur die command.com gibt (cmd.exe war noch nicht geboren).
Befehlserweiterungen, wie set /p oder for /f existieren nicht.
Ich verkneife es mir einen Lösungsvorschlag zu posten, da ich hier auch überfordert bin. Dinge, wie
"2. Es erscheint eine Abfrage, wo man den Namen der aufzurufenden Datei mit Endung eingibt"
sind soweit ich weiß nicht möglich.
Grüße
rubberman
DOS bedeutet in diesem Fall aber auch, dass es nur die command.com gibt (cmd.exe war noch nicht geboren).
Befehlserweiterungen, wie set /p oder for /f existieren nicht.
Ich verkneife es mir einen Lösungsvorschlag zu posten, da ich hier auch überfordert bin. Dinge, wie
"2. Es erscheint eine Abfrage, wo man den Namen der aufzurufenden Datei mit Endung eingibt"
sind soweit ich weiß nicht möglich.
Grüße
rubberman
Hallo Enno78!
Du könntest es mit den folgenden beiden Dateien versuchen:
als zB "Bearbeit.bat" gespeichert und
als "DatSuch.bas" gespeichert - falls nicht im selben (und aktuellen Verzeichnis) wie die Batchdatei, dann muss in Zeile 4 des Batches der vollständige Pfad zur "DatSuch.bas" angegeben werden.
Zusätzlich muss noch das Verzeichnis %TEMP% existieren - den Pfad findest Du mit
Kurz zur Funktionsweise:
Der Batch ruft zunächst ein QBasic-Programm auf, welches die Eingabe und die Suche nach der entsprechenden Datei (auf Laufwerk C: - siehe Zeile 7) übernimmt - gefunden wird dabei immer nur die letzte der per "
Der Aufruf zur Bearbeitung dieser Datei (im Beispiel mit dem Editor "
Danach übernimmt wieder der "Hauptbatch" und startet erneut das Basic-Programm.
Dies wird solange fortgesetzt, bis bei der Abfrage des Dateinamens "x" eingegeben wird.
Grüße
bastla
Du könntest es mit den folgenden beiden Dateien versuchen:
@echo off
set Bearb=%TEMP%\BEARB.BAT
:Loop
qbasic /run DatSuch.bas
if not exist %Bearb% goto :Ende
call %Bearb%
echo\
echo\
goto :Loop
:Ende
cls
TempBat$ = "BEARB.BAT"
INPUT "Dateiname (x = Ende)"; Datei$
i = 1: WHILE ENVIRON$(i) <> "": IF LEFT$(ENVIRON$(i), 5) = "TEMP=" THEN TEMP$ = MID$(ENVIRON$(i), 6)
i = i + 1: WEND
TB$ = TEMP$ + "\" + TempBat$
IF UCASE$(Datei$) = "X" THEN GOTO Abbruch
Cmd$ = "DIR /S /B " + "C:\" + Datei$ + " >" + TB$
SHELL Cmd$
OPEN TB$ FOR INPUT AS #1
Gef$ = ""
DO WHILE NOT EOF(1)
INPUT #1, Gef$
LOOP
CLOSE 1
OPEN TB$ FOR OUTPUT AS 1
IF Gef$ <> "" THEN
PRINT #1, "@edit " + Gef$
ELSE
PRINT #1, "@echo off"
PRINT #1, "echo " + CHR$(34) + Datei$ + CHR$(34) + " nicht gefunden!"
PRINT #1, "echo\"
END IF
SYSTEM
Abbruch:
ON ERROR GOTO Beenden
KILL TB$
Beenden:
SYSTEM
Zusätzlich muss noch das Verzeichnis %TEMP% existieren - den Pfad findest Du mit
set
Kurz zur Funktionsweise:
Der Batch ruft zunächst ein QBasic-Programm auf, welches die Eingabe und die Suche nach der entsprechenden Datei (auf Laufwerk C: - siehe Zeile 7) übernimmt - gefunden wird dabei immer nur die letzte der per "
dir /s /b C:\Dateiname.Typ
" ausgegebenen Dateien ...Der Aufruf zur Bearbeitung dieser Datei (im Beispiel mit dem Editor "
edit.com
") wird über einen temporären Batch "%TEMP%\BEARB.BAT" vorgenommen - um anstelle des Editors ein anderes Programm zu verwenden, die Zeile 17 entsprechend anpassen, zB:PRINT #1, "@C:\Word\word.exe " + Gef$
Danach übernimmt wieder der "Hauptbatch" und startet erneut das Basic-Programm.
Dies wird solange fortgesetzt, bis bei der Abfrage des Dateinamens "x" eingegeben wird.
Grüße
bastla
Moin
[OT]
@bastla:
Ach du grüne Neune, hast du das jetzt aus deinen grauen Hirnzelle rausgequetscht, oder wirklich noch eine echte/virtuelle aktive Doskiste?
Ne Kiste mit (fast allen) Dosdisketten hab ich zwar noch, aber auf die Idee heute nochmal Qbasic anzuwerfen...
[/OT]
Du hast deinen Nicknamen echt verdient
Grüße
[OT]
@bastla:
Ach du grüne Neune, hast du das jetzt aus deinen grauen Hirnzelle rausgequetscht, oder wirklich noch eine echte/virtuelle aktive Doskiste?
Ne Kiste mit (fast allen) Dosdisketten hab ich zwar noch, aber auf die Idee heute nochmal Qbasic anzuwerfen...
[/OT]
Du hast deinen Nicknamen echt verdient
Grüße
[OT]
@ti-mo
Wie, Du kommst ganz ohne DOS 6.22 aus?
Tatsächlich hat mich vor Kurzem die Vergangenheit eingeholt - ein von mir 1990 verbrochenes (Mini-)QBasic-Programm ist bei einem Kunden allen Ernstes noch immer in Verwendung, was sich beim Umstieg auf W7/64Bit als etwas problematisch erwiesen hat - im XP-Mode (bzw dessen VM) tut's jetzt aber wieder ...
Grüße
bastla
[/OT]
@ti-mo
Wie, Du kommst ganz ohne DOS 6.22 aus?
Tatsächlich hat mich vor Kurzem die Vergangenheit eingeholt - ein von mir 1990 verbrochenes (Mini-)QBasic-Programm ist bei einem Kunden allen Ernstes noch immer in Verwendung, was sich beim Umstieg auf W7/64Bit als etwas problematisch erwiesen hat - im XP-Mode (bzw dessen VM) tut's jetzt aber wieder ...
Grüße
bastla
[/OT]