Hi allerseits ^^
Weil mir die Suche von Windows immer zu lange dauert und manchmal nicht klappt, habe ich mir mal meine eigene Suche programmiert :P
Ich weiß, es gibt bestimmt bessere Programme, die es auch besser können und anzeigen.
Aber das hier habe ich wenigstens selber gemacht und weiß/sehe auch, was da geschieht :)
Code
@echo off & setlocal enabledelayedexpansion & chcp 850 > NUL
REM 'setlocal enabledelayedexpansion' aktiviert die '! variable'
REM 'chcp 1252' damit DOS richtig mit Umlaute umgeht und 'NUL' damit davon nichts angezeigt wird
REM 'chcp 850' damit Umlaute im DOS-Fenster richtig angezeigt werden > NUL
set "copyr=FileFinder 3.8 by HappyBoy"
set v=%CD%
set f=
set jn=n
set jn2=a
set s=n
set "u=%TEMP%\list.rtf"
if exist %u% del %u% /F
echo. > %u%
if NOT exist %u% GOTO fer
set alle_l=n
GOTO start
:zeig
echo Welche Dateien sollen angezeigt werden (a/v/n):
echo a=Alle
echo v=nur versteckte
echo n=nur nicht versteckte
set /p jn2=
GOTO start
:sor
echo Ergebnisse in den Ordnern sortieren nach:
echo Name: n=abc; -n=zyx
echo Groesse: s=1,2,3; -s=3,2,1
echo Verzeichnis: g=Ordner,Datei; -g=Datei,Ordner
echo Aenderungsdatum/-uhrzeit: d=1.1, 2.1; -d=2.1, 1.1
set /p s=
GOTO start
:all
if "%alle_l%" == "n" (
set alle_l=j
) else (
set alle_l=n
)
GOTO start
:l_listen
for %%a in (A C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
REM echo %%a
cd %%a:\
if !errorlevel! == 0 (
set /a l_index=!l_index!+1
set l_buch!l_index!=%%a
)
)
cls
set v=!l_buch%l_index%!:
set /a l_index=%l_index%-1
GOTO ueb_ver
:start
set o=
cls
echo.
echo Einstellungen:
echo fuer Anzeige von Dateien 'f' (%jn2%)
echo fuer Sortierung 's' (%s%)
echo alle Laufwerke durchsuchen 'a' (%alle_l%)
echo.
echo zum Abschliessen der Einstellungen weiter mit Enter
echo.
set /p o=
echo.
echo.
if "%o%" == "f" GOTO zeig
if "%o%" == "s" GOTO sor
if "%o%" == "a" GOTO all
cls
echo.
if "%alle_l%" == "j" GOTO l_listen
echo In welchen Verzeichnis soll gesucht werden? ("%v%")
set /p v=
:ueb_ver
echo.
echo Nach welcher Datei soll gesucht werden?
set /p f=
REM wer weiss was er macht, kann die * auch weg machen
set f=*%f%*
set su=%v%\%f%
echo {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Calibri;}}> %u%
echo {\colortbl ;\red255\green255\blue0;\red0\green0\blue255;}>> %u%
echo {\*\generator %copyr%;}\viewkind4\uc1\pard\sa200\sl276\slmult1\tx568\tx5500\tx7000\lang7\f0\fs22>> %u%
@chcp 1252 > NUL
if "%alle_l%" == "j" echo Suchergebnis fuer %f% \ >> %u%
if "%alle_l%" == "n" echo Suchergebnis fuer %su:\=/% \ >> %u%
echo ^(\cf1\highlight2\ul Ordner\cf0\highlight0\ulnone\,>> %u%
echo \highlight1 Verknüpfung\highlight0 ^) \par>> %u%
set "h=/A"
if "%jn2%" == "v" set "h=/AH"
if "%jn2%" == "n" set "h="
set z=0
set k=""
REM ! weil die Aenderung einer Variable % erst nach einer Bedingung wirkt
:l_while
cls
echo Am Ende der Suche wird das Ergebnis in einer Datei geoeffnet
echo.
echo Suche nach:
echo %su%
echo Fund: %z%
for /f "delims=" %%I in ('dir "%su%" %h% /S /B /O%s%') do (
set ok=1
set a=%%%I
set a=!a:\=/!
if NOT "!k!" == "%%~dpI" (
set k=%%~dpI
set k1=!k:\=/!
echo \par>> %u%
echo {\field{\*\fldinst{HYPERLINK "!k1!"}}{\fldrslt{\cf2\ul !k1! }}}\cf0\ulnone\f0\fs22\par>> %u%
)
REM Verzeichnisse markieren.
if "%%~xI" == "" (
set da=%%~aI
if "!da:~0,1!" == "d" set ok=0
echo \tab\highlight2{\field{\*\fldinst{HYPERLINK "!a!"}}{\fldrslt{\cf1\ul %%~nxI \tab \tab %%~tI}}}\cf0\highlight0\ulnone\f0\fs22\par>> %u%
)
REM Verknuepfungen markieren und ausschliessen.
if "%%~xI" == ".lnk" (
set ok=0
echo \tab\highlight1 %%~nI \tab \tab %%~tI\highlight0\par>> %u%
)
if "!ok!" == "1" (
cls
echo Am Ende der Suche wird das Ergebnis in einer Datei geoeffnet
echo.
echo Suche nach:
@chcp 850 > NUL
echo %su%
@chcp 1252 > NUL
set /a z=!z!+1
echo Fund: !z!
set g1=0
set g=%%~zI
REM CMD kann Zahlen, die groesser als 32Bit sind, nicht berechnen
REM wenn Datei groesser oder gleich 1GB ist
if !g! GEQ 1073741824 (
REM Petabyte (PB)
REM set /a g0 = !g:~0,-10!
REM if !g0! GEQ 112589 (
REM set /a g0=!g0!/112589
REM set g1=!g0!PB
REM ) else (
REM Terabyte (TB)
REM set /a g0 = !g:~0,-8!
REM if !g0! GEQ 10995 (
REM set /a g0=!g0!/10995
REM set g1=!g0!TB
REM ) else (
REM Gigabyte (GB)
set /a g0 = !g:~0,-6!/1073
set g1=!g0!GB
REM )
REM )
) else (
REM Megabyte (MB)
if !g! GEQ 1048576 (
set /a g0=!g!/1048576
set g1=!g0!MB
) else (
REM Kilobyte (KB)
if !g! GEQ 1024 (
set /a g0=!g!/1024
set g1=!g0!KB
) else set g1=!g!Bytes
)
)
echo \tab{\field{\*\fldinst{HYPERLINK "!a!"}}{\fldrslt{\cf2\ul %%~nxI \tab !g1! \tab %%~tI}}}\cf0\ulnone\f0\fs22\par>> %u%
)
set ERRORLEVEL=0
)
if "%alle_l%" == "n" GOTO l_wei
set su=!l_buch%l_index%!:\%f%
set /a l_index=%l_index%-1
if %l_index% == 0 GOTO l_wei
GOTO l_while
:l_wei
IF "%z%" == "0" (
echo Keine Datei in "%su:\=/% \" gefunden\par>> %u%
)
echo } >> %u%
@chcp 850 > NUL
start %u%
exit
:fer
echo.
echo Sie benoetigen Schreibrechte fuer:
echo %u%
echo.
pause
Alles anzeigen