
43547
29.03.2007, aktualisiert am 30.03.2007
Ausgabe von Dateien (*.CON)
Ich habe folgendes Problem beim suchen nach Dateiendungen...
In dieser FOR Schleife lasse ich mit alle *.CON Dateien einbinden, mein problem ist aber das nicht nur *.CON Dateien enthalten sind sonder auch z.B. *.config... Hat jemand eine Idee wie ich das eingrenze das da nur *.CON Dateien aufgelistet werden.
________________________________________________________________________________
:SETLWS
SET LW_WINDIR=C:
SET LW_WINDIR=\AACABR\
:MAIN
FOR /f "delims== tokens=1" %%i in ('DIR *.CON /B /S') do @set /A j+=1 & @echo LW!j!=%%i>>%LW_WINDIR%%LW_AAC_SYS%LW_C.drv
:COPY
IF EXIST "%LW_WINDIR%%LW_AAC_SYS%LW_C.drv" (
FOR /f "delims== tokens=2" %%i in (%LW_WINDIR%%LW_AAC_SYS%LW_C.drv) do (
IF EXIST %%i\*.CON COPY %%i\*.CON A:\ >NUL
)
) else (
GOTO ENDE
)
:ENDE
EXIT
________________________________________________________________________________
Da ich nach CON Dateien suchen muss und die Aktuellste CON Datei auf Diskette bringen musss....
HILFE
In dieser FOR Schleife lasse ich mit alle *.CON Dateien einbinden, mein problem ist aber das nicht nur *.CON Dateien enthalten sind sonder auch z.B. *.config... Hat jemand eine Idee wie ich das eingrenze das da nur *.CON Dateien aufgelistet werden.
________________________________________________________________________________
:SETLWS
SET LW_WINDIR=C:
SET LW_WINDIR=\AACABR\
:MAIN
FOR /f "delims== tokens=1" %%i in ('DIR *.CON /B /S') do @set /A j+=1 & @echo LW!j!=%%i>>%LW_WINDIR%%LW_AAC_SYS%LW_C.drv
:COPY
IF EXIST "%LW_WINDIR%%LW_AAC_SYS%LW_C.drv" (
FOR /f "delims== tokens=2" %%i in (%LW_WINDIR%%LW_AAC_SYS%LW_C.drv) do (
IF EXIST %%i\*.CON COPY %%i\*.CON A:\ >NUL
)
) else (
GOTO ENDE
)
:ENDE
EXIT
________________________________________________________________________________
Da ich nach CON Dateien suchen muss und die Aktuellste CON Datei auf Diskette bringen musss....
HILFE
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 55376
Url: https://administrator.de/forum/ausgabe-von-dateien-con-55376.html
Ausgedruckt am: 18.05.2025 um 16:05 Uhr
9 Kommentare
Neuester Kommentar
Hallo IT-KMS-Nitschke!
Dann also komplett (wobei anzumerken wäre, dass mir ein "setlocal enabledelayedexpansion" vorneweg fehlt und auch die Zuweisung "SET LW_WINDIR=\AACABR" vermutlich anders gedacht war):
Grüße
bastla
Dann also komplett (wobei anzumerken wäre, dass mir ein "setlocal enabledelayedexpansion" vorneweg fehlt und auch die Zuweisung "SET LW_WINDIR=\AACABR" vermutlich anders gedacht war):
for /f "delims=" %%i in ('DIR *.CONF /B /S') do if /i [%%~xi]==[.con] @Set /A j+=1 & @Echo LW!j!=%%i>>%LW_WINDIR%%LW_AAC_SYS%LW_C.drv
Grüße
bastla
Hallo IT-KMS-Nitschke!
Je nachdem, welchen weiteren Zweck Du mit der erstellten Dateiliste noch verfolgen wolltest, müsstest du das Format / die Inhalte anpassen (siehe "echo"-Zeile in ":ProcessFile"). Derzeit ist der Inhalt nur am Zweck "Ausgabe der jüngsten Datei" orientiert.
Bei der Angabe des "SourceDir" bitte keinen abschließenden Backslash verwenden ("C:" steht also eigentlich für "C:\").
Grüße
bastla
Je nachdem, welchen weiteren Zweck Du mit der erstellten Dateiliste noch verfolgen wolltest, müsstest du das Format / die Inhalte anpassen (siehe "echo"-Zeile in ":ProcessFile"). Derzeit ist der Inhalt nur am Zweck "Ausgabe der jüngsten Datei" orientiert.
Bei der Angabe des "SourceDir" bitte keinen abschließenden Backslash verwenden ("C:" steht also eigentlich für "C:\").
@echo off & setlocal
set SourceDir=C:
set Typ=.con
set LW_WINDIR=E:
set LW_AAC_SYS=\AACABR
set "Liste=%LW_WINDIR%%LW_AAC_SYS%LW_C.drv"
for /f "delims=" %%i in ('dir "%SourceDir%\*%Typ%" /b /s') do if /i [%%~xi]==[%Typ%] call :ProcessFile "%%i"
set Newest=
for /f "tokens=1* delims= " %%i in ('type "%Liste%" ^|sort') do set "Newest=%%j"
if not defined Newest goto :KeineGefunden
echo %Newest% wird kopiert ...
copy "%Newest%" A:\ >nul
goto :eof
:ProcessFile
set FDate=%~t1
set FileDate=%FDate:~6,4%%FDate:~3,2%%FDate:~0,2%%FDate:~11,2%%FDate:~14,2%
echo %FileDate% %~f1>>"%Liste%"
goto :eof
:KeineGefunden
echo Es wurde keine passende Datei gefunden.
Grüße
bastla
Hallo IT-KMS-Nitschke!
Da ich die obige Version so zwischendurch hingebastelt hatte, noch ein Nachtrag, speziell für den Fall, dass tatsächlich keine Datei gefunden wurde. Auch ergänzt: Beim Start wird zunächst einmal die alte Liste gelöscht.
Grüße
bastla
Da ich die obige Version so zwischendurch hingebastelt hatte, noch ein Nachtrag, speziell für den Fall, dass tatsächlich keine Datei gefunden wurde. Auch ergänzt: Beim Start wird zunächst einmal die alte Liste gelöscht.
@echo off & setlocal
set SourceDir=C:
set Typ=.con
set LW_WINDIR=E:
set LW_AAC_SYS=\AACABR
set "Liste=%LW_WINDIR%%LW_AAC_SYS%LW_C.drv"
if exist "%Liste%" del "%Liste%"
for /f "delims=" %%i in ('dir "%SourceDir%\*%Typ%" /b /s 2>nul') do if /i [%%~xi]==[%Typ%] call :ProcessFile "%%i"
if not exist "%Liste%" goto :KeineGefunden
set Newest=
for /f "tokens=1* delims= " %%i in ('type "%Liste%" ^|sort') do set "Newest=%%j"
echo %Newest% wird kopiert ...
copy "%Newest%" A:\ >nul
goto :eof
:ProcessFile
set FDate=%~t1
set FileDate=%FDate:~6,4%%FDate:~3,2%%FDate:~0,2%%FDate:~11,2%%FDate:~14,2%
echo %FileDate% %~f1>>"%Liste%"
goto :eof
:KeineGefunden
echo Es wurde keine passende Datei gefunden.
Grüße
bastla