treemanhero98
Goto Top

Spezielle Suchfunktion mit Batch

Hallo Leute,

ich brauche ein bisschen Hilfe bei dieser speziellen Batch-Such-Funktion. Die soll auf einem bestimmten Laufwerk nach Dateien einer Art suchen und die dann alle in eine .txt zusammentragen. Leider klappt dass nicht wie gewünscht :/ Es kommt nur :,,

"*"-Dateien auf Laufwerk "*" = !Gesamt! Byte
Info: Wenn zwei Dateitypen hintereinander die gleiche Bytezahl haben,
ist die hintere 0 Byte gross. Keine Gewaehr für irgendwas "


in der .txt raus .... Weiß Leider nicht was da falsch ist face-sad
Freue mich deshalb über jede Hilfe face-wink


LG

Treemanhero98


Hier der Code:


@echo off

echo Spezifische Dateien-Art-Suche
pause
:weiter

set /p Typen=Welche Dateiendungen haben die Dateien?

if "%Typen%"=="" goto weiter

if "%Typen%"=="*" goto weiter

set "Log=%cd%\Dateigroessen.txt"

if exist "%Log%" del "%Log%"
for %%t in (%Typen%) do (
for /f "tokens=3" %%i in ('dir /s %LW%:\*.%%t^|findstr "Datei(en)"') do set "Gesamt=%%i"
if "!Gesamt!"=="" set /a Gesamt=0
echo ".%%t"-Dateien auf Laufwerk "%LW%:\" = !Gesamt! Byte>>"%Log%"
)

echo. >>"%Log%"
echo Info: Wenn zwei Dateitypen hintereinander die gleiche Bytezahl haben, >>"%Log%"
echo ist die hintere 0 Byte gross. Keine Gewaehr für irgendwas >>"%Log%"

cls

more < "%Log%"

pause >nul.txt

Content-ID: 250974

Url: https://administrator.de/contentid/250974

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

rubberman
Lösung rubberman 04.10.2014 aktualisiert um 21:51:07 Uhr
Goto Top
Hallo Treemanhero98, willkommen im Forum.

Ohne mir deinen (unformatierten) Code genauer angesehen zu haben ... Wenn du Variablen in !! einschließt, benötigst du ein
setlocal EnableDelayedExpansion
das ich leider nirgends finde.

Grüße
rubberman
Treemanhero98
Treemanhero98 04.10.2014 um 21:21:19 Uhr
Goto Top
Danke für die Begrüßung & den Hinweiß =)
Ich darf die Nächte nicht mehr solange wach bleiben, damit sowas nicht passiert :D
Werd ich dann mal bis morgen überarbeiten & hier reinstellen

LG

Treemanhero98
rubberman
rubberman 04.10.2014 um 21:32:24 Uhr
Goto Top
Hallo Treemanhero98.

[OT]
Ich darf die Nächte nicht mehr solange wach bleiben
... und ...
Werd ich dann mal bis morgen überarbeiten
... widerspricht sich aber schon wieder, oder? face-big-smile
[/OT]

Grüße
rubberman
Treemanhero98
Treemanhero98 04.10.2014 um 21:50:49 Uhr
Goto Top
Da fällt mir grade auf dass ich die Hälfte vergessen hab :§ .......

Jetzt ergibt auch alles einen Sinn face-wink
Danke für den tollen Tipp, es funktioniert (y) es gibt zwar am Ende in der cmd noch so eine dämliche Fehler-Meldung(System konnte angeblich den Pfad nicht finden) aber die .txt-Dateigroessen ist vollständig mit richtigen Angaben .


@echo off
setlocal EnableDelayedExpansion
echo Spezifische Dateien-Art-Suche
:start

set /p LW=Auf welchem Laufwerk befinden sich die Dateien? 

if "%LW%"=="" goto start  

cls
pause
:weiter

set /p Typen=Welche Dateiendungen haben die Dateien?

if "%Typen%"=="" goto weiter  

if "%Typen%"=="*" goto weiter  

set "Log=%cd%\Dateigroessen.txt"  

if exist "%Log%" del "%Log%"  
for %%t in (%Typen%) do (
for /f "tokens=3" %%i in ('dir /s %LW%:\*.%%t^|findstr "Datei(en)"') do set "Gesamt=%%i"  
if "!Gesamt!"=="" set /a Gesamt=0  
echo ".%%t"-Dateien auf Laufwerk "%LW%:\" = !Gesamt! Byte>>"%Log%"  
)

echo. >>"%Log%"  
echo Info: Wenn zwei Dateitypen hintereinander die gleiche Bytezahl haben, >>"%Log%"  
echo ist die hintere 0 Byte gross. Keine Gewaehr für irgendwas >>"%Log%"  

cls
endlocal EnableDelayedExpansion

more < "%Log%"  

pause >nul.txt
Treemanhero98
Treemanhero98 04.10.2014 um 21:51:43 Uhr
Goto Top
Irgendwie schon :D