43547
Mar 29, 2007, updated at Mar 30, 2007 (UTC)
5857
9
0
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
________________________________________________________________________________
: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
Please also mark the comments that contributed to the solution of the article
Content-Key: 55376
Url: https://administrator.de/contentid/55376
Printed on: April 19, 2024 at 05:04 o'clock
9 Comments
Latest comment
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