Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Vorletzte Zeile aus Textdatei auslesen; Zeilenanzahl ist nicht konstant; Inhalt ist unbekannt

Frage Entwicklung Batch & Shell

Mitglied: 45753

45753 (Level 1)

24.03.2007, aktualisiert 26.03.2007, 7201 Aufrufe, 29 Kommentare

Hallo,

Ich habe zu einem Problem einfach keine Lösung im Web finden können...

Ich möchte die Anzahl aller gefundener Desktop.ini's aus allen Ordnern + Unterordnern in eine Variable legen können. Dieser Link hat mir zwar schon weitergeholfen...
http://www.administrator.de/EINE_Zeile_aus_TXT-Datei_auslesen.html
aber nun habe ich das Problem, dass in ALLINONEB.txt statt die gelöschten Zahl, nun folgender Text steht: "ECHO ist ausgeschaltet (OFF). Ich habe gelesen, dass das Problem wohl an der verlorenen Variablen liegt...
Ich brauche den Wert der Anzahl der Desktop.ini's in der letzten Zeile, da ich sonst nicht weis, wie ich diese Zahl auslesen könnte.
Wenn es generell eine bessere Lösung für mein Problem gibt, dann bitte nur raus damit. Wenn ich mir nämlich meine Batch ansehe, dann bekomme ich ein bischen das Kopfschütteln....

@echo off

for /f %%i in ('dir /A HS /S "Desktop.ini"') do echo %%i >> "ALLINONEA.txt"

echo.
:: Letzte Zeile in %VarA% speichern
for /F "Tokens=*" %%i in (ALLINONEA.txt) do Set VarA=%%i
Echo Letzte Zeile...: [%VarA%]
echo.

echo.
for /f "delims=0" %%j in (ALLINONEA.txt) do echo %%j >> "ALLINONEB.txt"

echo.
:: Letzte Zeile in %VarB% speichern
for /F "Tokens=*" %%i in (ALLINONEA.txt) do Set VarB=%%i
Echo Letzte Zeile...: [%VarB%]
echo.

pause
29 Antworten
Mitglied: 45426
24.03.2007 um 14:43 Uhr
01.
set lw=%systemdrive% 
02.
dir %lw%\Desktop.ini /a /s /B > irgendwas.txt 
Und dann zählst du einfach die Zeilen der irgendwas.txt
Bitte warten ..
Mitglied: bastla
24.03.2007 um 14:55 Uhr
Hallo wobleibtdiezeit!

Wenn Du Deine etwas abenteuerliche Fassung beibehalten willst, müsstest Du nur
01.
for /f %%i in ('dir /A HS /S "Desktop.ini" ^| findstr /v "Verzeichnis(se)"') do echo %%i >> "ALLINONEA.txt"
schreiben, um die Anzahl in der letzten Zeile zu erhalten.

Etwas abgekürzt wäre (direkt von der Commandline):
01.
for /f %i in ('dir /s /ahs desktop.ini ^| findstr /v "Verzeichnis(se)"') do @set Anzahl=%i 
02.
echo %Anzahl%
Grüße
bastla
Bitte warten ..
Mitglied: paulepank
24.03.2007 um 14:56 Uhr
Hallo,

einfach so:
01.
for /f %%i in ('dir /a /s /b desktop.ini^|find /c /i "desktop.ini"') do @set anzahl=%%i
Bitte warten ..
Mitglied: bastla
24.03.2007 um 15:08 Uhr
Hallo paulepank und willkommen im Forum!

Schöne Lösung.

Grüße
bastla
Bitte warten ..
Mitglied: paulepank
24.03.2007 um 15:11 Uhr
Danke sehr
Bitte warten ..
Mitglied: 45753
24.03.2007 um 16:52 Uhr
Danke für eure schnelle Hilfe!

Jetzt ist da noch das Problem mit dem Punkt "Verzeichnis(se)". Gibt es eine Möglichkeit der Batch beizubringen, automatisch das Verzeichnis zu nehmen in dem die Batch ausgeführt wurde?
Bitte warten ..
Mitglied: bastla
24.03.2007 um 17:07 Uhr
Hallo wobleibtdiezeit!

Gibt es eine Möglichkeit der Batch beizubringen, automatisch das Verzeichnis zu nehmen in dem die Batch ausgeführt wurde?
Sorry - die Fragestellung ist mir nicht klar. Wofür soll ein Verzeichnis genommen werden?
Vielleicht noch zur Klarstellung: "Verzeichnis(se)" in meinem Ansatz oben hat die Aufgabe, die störende letzte Zeile der "dir"-Ausgabe zu eliminieren.

Grüße
bastla
Bitte warten ..
Mitglied: 45426
24.03.2007 um 17:19 Uhr
@45753
>Gibt es eine Möglichkeit der Batch beizubringen, automatisch das Verzeichnis zu nehmen in dem die Batch ausgeführt wurde?

Gibt es. Bau die Zeilen ein:

set lw=%~f0
set lw=%lw:~0,3%

Den Rest musst du allein herausfinden. Etwas sollst du ja dabei lernen, und nicht alles vorgekaut bekommen.

edit: 2 Buchstaben angefügt.
Damit wird das Laufwerk, von dem die Batch gestartet wird durchsucht.
Bitte warten ..
Mitglied: bastla
24.03.2007 um 17:30 Uhr
@45426

Vielleicht wäre ihm im Fall des Falles mit
01.
set lw="%cd%"
mehr geholfen.

Anmerkung: Die Anführungszeichen sollten eigentlich im "dir"-Befehl stehen.

Grüße
bastla

[Edit] Anmerkung hinzugefügt. [/Edit]
Bitte warten ..
Mitglied: paulepank
24.03.2007 um 17:31 Uhr
Gibt es eine Möglichkeit der Batch beizubringen,
automatisch das Verzeichnis zu nehmen in dem
die Batch ausgeführt wurde?

genau diese Lösung habe ich dir doch in dem Einzeiler geschrieben.

Grüße
paulepank
Bitte warten ..
Mitglied: 45426
24.03.2007 um 17:35 Uhr
@bastla

Nicht ganz, jedenfalls nicht ohne Anpassung. Aber ich habe den Post berichtigt, so sollte das funktionieren.

edit: Natürlich hast du Recht. Ich bin aber erst durch den Nachfolgepost von paulepank darauf gekommen. ;)

Ich hatte das als "Laufwerk, von dem die Batch gestartet wird" interpretiert.
Bitte warten ..
Mitglied: bastla
24.03.2007 um 17:49 Uhr
@45426

Meine Überlegung ging eigentlich in die Richtung, dass er vielleicht einen Aufruf folgender Art produzieren würde:
01.
D:\Test>C:\Scripts\CountDesktopInis.bat
Dann wäre anstatt meiner "cd"-Krücke das gänzliche Weglassen des "dir"-Zieles (wie er es in seinem Entwurf ja selbst schon gemacht hatte) oder eine vernünftige Parameterübergabe am sinnvollsten.

Grüße
bastla

[Edit] Mein Kommentar hat sich inzwischen wohl erledigt. [/Edit]
[Edit2] Mir war allerdings, wie man oben sieht, auch nicht gleich klar, was eigentlich gemeint wäre. [/Edit2]
Bitte warten ..
Mitglied: 45426
24.03.2007 um 17:54 Uhr
> eine vernünftige Parameterübergabe am sinnvollsten
Genau!

Dann könnte man den Batch z. B. nach Senden an schieben.
Bitte warten ..
Mitglied: 45753
24.03.2007 um 20:50 Uhr
ok... die Idee mit dem Sendto sagt mir, dass ihr mein Anliegen verstanden habt... Nur blicke ich jetzt ueberhaupt nicht mehr durch. Ich habe die letzte Nacht wegen dieses Problems durchgemacht und bin nun total platt. Wenn ihr tatsaechlich eine Loesung gefunden habt, die also so aussieht, dass die Batch wenn man sie ausfuehr sofort in dem Verzeichnis gestartet wird in dem man sich gerade befindet, dann waere es toll, wenn ihr die komplette batch fuer "platte" leute posten koenntet mein momentaner Stand ist also dieser:

[code]
@echo off

for /f %%i in ('dir /A /S "Desktop.ini" ^| findstr /v "Verzeichnis(se)"') do echo %%i >> "ALLINONEA.txt"

echo.
:: Letzte Zeile in %VarA% speichern
for /F "Tokens=*" %%i in (ALLINONEA.txt) do Set VarA=%%i
Echo Letzte Zeile...: [%VarA%]
echo.

pause
[code]

Danke nochmal für eure Mühe !
Bitte warten ..
Mitglied: 45426
24.03.2007 um 21:01 Uhr
Lies dir die ganzen Beiträge nochmal durch, da gibt es einfachere Lösungen.

Es nutzt dir doch wenig, wenn du die fertige Lösung präsentiert bekommst, hier gibt es doch schon verschiedene Lösungsansätze. Wenn du versuchst, die mal nachzuvollziehen, kommst du auch selbst dahinter.

Beschäftige dich doch in der Windows-Hilfe mal mit dem Thema "Batch" und den ganzen Unterseiten. Dort steht doch im Prinzip alles, was du wissen musst.
Bitte warten ..
Mitglied: 45753
24.03.2007 um 21:24 Uhr
Hallo haenschenpiepdochmal

Ich finde es auch nicht richtig, dass man einem immer alles vorbetet ohne das derjenige seinen kopf dazu irgendwie einsetzen braucht. nur habe ich wirklich keinen nerv mehr und mein name den ich mir gegeben habe ist nun mal echt programm. ich haette es mir im grunde genommen garnicht erlauben dürfe die nacht wegen dieses problems um die ohren zu hauen. Es waere also nett, wenn ihr mir nun doch die loesung praesentieren koenntet... Ansonsten MUSS ich das thema fur mich tatsaechlich aus meinem kopf streichen... ...nur waere das schade nachdem ich an den anderen Batch-dateien die noch dazugehören ich so lange gesässen habe...
Bitte warten ..
Mitglied: bastla
24.03.2007 um 21:38 Uhr
Hallo wobleibtdiezeit!

Damit Du ins Bett kommst:
01.
@echo off & setlocal 
02.
if [%1] neq [] cd /d %1 2>nul || cd /d "%~dp1" 
03.
for /f %%i in ('dir desktop.ini /a /s /b 2^>nul^|find /c /i "desktop.ini"') do @set anzahl=%%i 
04.
if not defined anzahl set anzahl=0 
05.
echo %anzahl% desktop.ini unterhalb von %cd% 
06.
echo. 
07.
pause
Ausgehend von paulepanks Lösung habe ich das Ganze etwas erweitert, sodass Du die Batchdatei tatsächlich in den Ordner "SendTo" legen kannst und sowohl von einer Datei als auch von einem Ordner aus mit "Senden an" aufrufen kannst.

Falls Du eine Auswertung für ein Rootverzeichnis (also etwa "D:\") benötigst, markiere einfach eine Datei und rufe den Batch von dieser aus auf.

Du kannst den Batch auch von der Commandline verwenden (mit Übergabe eines Pfades oder auch ohne Parameter - dann wird ausgehend vom aktuellen Verzeichnis gezählt).

Grüße
bastla
Bitte warten ..
Mitglied: 45426
24.03.2007 um 21:52 Uhr
Die Zeile, die paulepank um 14.56:31 geschrieben hat, einfach um %1\ erweitert, ergibt (mit Beiwerk):

01.
@echo off 
02.
for /f %%i in ('dir /a /s /b %1\desktop.ini^|find /c /i "desktop.ini"') do @set anzahl=%%i 
03.
@echo %anzahl% gefundene Dateien Desktop.ini im Pfad %1 
04.
pause
Das geht allerdings wegen "\\" in die Hose, wenn du das direkt aus dem Root-Verzeichnis aufrufst.
Aber wenigstens etwas soll für dich noch übrig bleiben.

Die Zeilen speicherst du dann als irgendwas.bat im SendTo-Ordner deines Profils.
Bitte warten ..
Mitglied: bastla
24.03.2007 um 22:00 Uhr
@45426

Das geht allerdings wegen "\\" in die Hose, wenn du das direkt aus dem Root-Verzeichnis aufrufst.
... wobei ein "Senden an" von einem Root-Ordner aus erst einmal gelingen muss.

Grüße
bastla
Bitte warten ..
Mitglied: 45426
24.03.2007 um 22:06 Uhr
> wobei ein "Senden an" von einem Root-Ordner aus erst einmal gelingen muss.
Kannste mal sehen, dumm gelaufen. Ist mir noch gar nicht aufgefallen.

Ich nutze SendTo nur für den Unlocker.
Bitte warten ..
Mitglied: 45753
24.03.2007 um 23:08 Uhr
Prost! Ich geb einen aus...

Ihr habt es echt geschafft! Vielen Dank für Eure Mühe! bastla Deine Finale Version läuft tadellos!

Jetzt kann ich das ganze noch um weitere attribute erweitern und an mein Ausgabemenu von meinen Batch-Dateien die die Desktop.ini und Desktop.ico verwalten anpassen.
Wenn ihr Interesse dran habt wie man Desktop.ini's +- Desktop.ico's in Ordner + alle Unterordner vervielfältigt / löscht / usw. - und das unter Windows - dann kann ich das auch gerne mal posten wenn ihr es wünscht. Allerdings würde es mich nicht wundern, wenn Ihr darauf auch schon eine Lösung wist

Nochmal danke für eure Hilfe!
Bitte warten ..
Mitglied: bastla
24.03.2007 um 23:16 Uhr
@45426

Ich nutze SendTo nur für den Unlocker.
Für den "Unlocker Assistant" leiste ich mir einen zusätzlichen Prozess ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
24.03.2007 um 23:19 Uhr
Hallo wobleibtdiezeit!

Freut mich, wenn's klappt - und Deine Lösung könntest Du vielleicht in einem neuen Thread vorstellen.

Schönes WE
bastla
Bitte warten ..
Mitglied: 45753
25.03.2007 um 04:54 Uhr
Hallo, kurz vom Schlafengehen hab ich die Funktionen nun in meiner Batch nochmal wachsen lassen. Wenn man die Batch starten sieht man eine Zusammenfassung aller Desktop.ini's und Desktop.ico's aus allen Unterordner und das eben aus dem Ordner in dem man sich gerade befindet. Um den Screen aktuallisieren zu konnen drückt man zwei mal Enter...

01.
@echo off & setlocal 
02.
cls 
03.
 
04.
:start 
05.
 
06.
if NOT EXIST Desktop.ini goto renAnoini 
07.
attrib -S -H Desktop.ini > Nul 
08.
ren Desktop.ini Desktop.ini.temptemp > Nul 
09.
:renAnoini 
10.
if NOT EXIST Desktop.ico goto renAnoico 
11.
attrib -S -H Desktop.ico > Nul 
12.
ren Desktop.ico Desktop.ico.temptemp > Nul 
13.
:renAnoico 
14.
 
15.
if [%1] neq [] cd /d %1 2>nul || cd /d "%~dp1" 
16.
 
17.
echo. 
18.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
19.
ECHO. 
20.
echo  Suche nach Desktop.ini's und Desktop.ico's aus allen Unter-.+.Ordner von... 
21.
echo. 
22.
echo  "%cd%" 
23.
echo. 
24.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
25.
echo. 
26.
echo  ======= Desktop.ini's ======= 
27.
echo. 
28.
 
29.
for /f %%i in ('dir desktop.ini /a-r /s /b 2^>nul^|find /c /i "desktop.ini"') do @set anzahli-r=%%i 
30.
if not defined anzahl set anzahl=0 
31.
echo    Ohne Schreibschutz: %anzahli-r% 
32.
 
33.
for /f %%i in ('dir desktop.ini /ar /s /b 2^>nul^|find /c /i "desktop.ini"') do @set anzahli+r=%%i 
34.
if not defined anzahl set anzahl=0 
35.
echo     Mit Schreibschutz: %anzahli+r% 
36.
 
37.
for /f %%i in ('dir desktop.ini /a /s /b 2^>nul^|find /c /i "desktop.ini"') do @set anzahlig=%%i 
38.
if not defined anzahl set anzahl=0 
39.
echo          Gesamtanzahl: %anzahlig%  
40.
 
41.
echo. 
42.
echo  ======= Desktop.ico's =======  
43.
echo. 
44.
 
45.
for /f %%i in ('dir desktop.ico /a-r /s /b 2^>nul^|find /c /i "desktop.ico"') do @set anzahlo-r=%%i 
46.
if not defined anzahl set anzahl=0 
47.
echo    Ohne Schreibschutz: %anzahlo-r% 
48.
 
49.
for /f %%i in ('dir desktop.ico /ar /s /b 2^>nul^|find /c /i "desktop.ico"') do @set anzahlo+r=%%i 
50.
if not defined anzahl set anzahl=0 
51.
echo     Mit Schreibschutz: %anzahlo+r%  
52.
 
53.
for /f %%i in ('dir desktop.ico /a /s /b 2^>nul^|find /c /i "desktop.ico"') do @set anzahlog=%%i 
54.
if not defined anzahl set anzahl=0 
55.
echo          Gesamtanzahl: %anzahlog%  
56.
 
57.
echo. 
58.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
59.
echo. 
60.
 
61.
if NOT EXIST Desktop.ini.temptemp goto renBnoini 
62.
ren Desktop.ini.temptemp Desktop.ini > Nul 
63.
attrib +S +H Desktop.ini > Nul 
64.
:renBnoini 
65.
if NOT EXIST Desktop.ico.temptemp goto renBnoico 
66.
ren Desktop.ico.temptemp Desktop.ico > Nul 
67.
attrib +S +H Desktop.ico > Nul 
68.
:renBnoico 
69.
 
70.
set choice= 
71.
set /p choice= Ausgeben in Textdatei ? (y/n):  
72.
if not "%choice%" == "" set choice=%choice:~0,1% 
73.
if "%choice%" == "y" goto txtja 
74.
if "%choice%" == "n" goto txtnein 
75.
 
76.
set choicef=%choice% 
77.
 
78.
cls 
79.
echo. 
80.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
81.
ECHO. 
82.
echo  Suche nach Desktop.ini's und Desktop.ico's aus allen Unter-.+.Ordner von... 
83.
echo. 
84.
echo  "%cd%" 
85.
echo. 
86.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
87.
echo. 
88.
echo  ======= Desktop.ini's ======= 
89.
echo. 
90.
echo    Ohne Schreibschutz: %anzahli-r% 
91.
echo     Mit Schreibschutz: %anzahli+r% 
92.
echo          Gesamtanzahl: %anzahlig%  
93.
echo. 
94.
echo  ======= Desktop.ico's =======  
95.
echo. 
96.
echo    Ohne Schreibschutz: %anzahlo-r% 
97.
echo     Mit Schreibschutz: %anzahlo+r%  
98.
echo          Gesamtanzahl: %anzahlog%  
99.
echo. 
100.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
101.
echo. 
102.
 
103.
set choice= 
104.
set /p choice= "%choicef%" ist keine gueltige Eingabe. Druecke y (Ja) oder n (Nein) und dann ENTER:  
105.
if not "%choice%" == "" set choice=%choice:~0,1% 
106.
if "%choice%" == "y" goto txtja 
107.
if "%choice%" == "n" goto txtnein 
108.
cls 
109.
goto start 
110.
 
111.
:txtja 
112.
echo. > "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
113.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
114.
ECHO. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
115.
echo  Suche nach Desktop.ini's und Desktop.ico's aus allen Unter-.+.Ordner von... >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
116.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
117.
echo  "%cd%" >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
118.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
119.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
120.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
121.
echo  ======= Desktop.ini's ======= >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
122.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
123.
echo    Ohne Schreibschutz: %anzahli-r% >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
124.
echo     Mit Schreibschutz: %anzahli+r% >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
125.
echo          Gesamtanzahl: %anzahlig%  >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
126.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
127.
echo  ======= Desktop.ico's =======  >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
128.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
129.
echo    Ohne Schreibschutz: %anzahlo-r% >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
130.
echo     Mit Schreibschutz: %anzahlo+r%  >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
131.
echo          Gesamtanzahl: %anzahlog%  >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
132.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
133.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
134.
echo. >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt 
135.
 
136.
:txtnein  
137.
cls 
138.
echo. 
139.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
140.
ECHO. 
141.
echo  Suche nach Desktop.ini's und Desktop.ico's aus allen Unter-.+.Ordner von... 
142.
echo. 
143.
echo  "%cd%" 
144.
echo. 
145.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
146.
echo. 
147.
echo  ======= Desktop.ini's ======= 
148.
echo. 
149.
echo    Ohne Schreibschutz: %anzahli-r% 
150.
echo     Mit Schreibschutz: %anzahli+r% 
151.
echo          Gesamtanzahl: %anzahlig%  
152.
echo. 
153.
echo  ======= Desktop.ico's =======  
154.
echo. 
155.
echo    Ohne Schreibschutz: %anzahlo-r% 
156.
echo     Mit Schreibschutz: %anzahlo+r%  
157.
echo          Gesamtanzahl: %anzahlog%  
158.
echo. 
159.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
160.
echo. 
161.
 
162.
echo  === Exit === 
163.
 
164.
if EXIST C:\WINDOWS\system32\wait_20.exe goto wait_20 
165.
pause 
166.
exit 
167.
 
168.
:wait_20 
169.
wait_20 1 KEY  
170.
exit
Klasse, mein Formatierungen [Leerzeichen] wurden nicht mitübernommen.
Gibt es eine Möglichkeit seine Batch-Datein (hier) hochzuladen ?
[Edit Biber:] "Code"-Formatierungstags ersetzt ("< code >" statt "[Code]", s. bastla's Folgekommentar[/Edit]
Bitte warten ..
Mitglied: bastla
25.03.2007 um 11:02 Uhr
Hallo wobleibtdiezeit!

Fleißig, fleißig ...

Kurze Anmerkungen:

Zur Menüeingabe:
01.
if "%choice%" == "y" goto txtja
Mit einem "if /i" beugst Du auch einer Fehlinterpretation wegen gedrückter Caps-Lock-Taste vor ...
Zu den Ausgaben:
01.
echo ... >> "!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt
Vielleicht vorweg ein
01.
set t="!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt!"
und danach dann nur noch
01.
echo ... >> %t%
Die Namensgebung der Ausgabedatei habe ich hiermit ausdrücklich nicht kommentiert.
Schließlich könntest Du den doppelt vorkommenden Teil zur Ausgabe der statistischen Daten in ein Unterprogramm auslagern, im Sinne von
01.
call :Statistik
Vor dem Sprungziel "Statistik" würdest Du bei Bedarf mit einem "goto :eof" dafür sorgen, dass das Unterprogramm nicht unabsichtlich durchlaufen wird (bei Dir würde das durch "exit" davor derzeit ohnehin verhindert).

Ansonsten: Keep on batchin'
bastla

P.S.: Um Code zu posten, empfiehlt es sich, diesen zwischen die Tags < code> und < /code> (natürlich ohne Leerstellen) zu setzen.
Bitte warten ..
Mitglied: 45753
25.03.2007 um 18:13 Uhr
Danke bastla für Deine Tipps. Ich habe sie alle in meine Batch-Dateien übernommen und es läuft alles ohne Probleme. Ich hatte ausserdem noch Fehler in den Namen der Variablen bei "if not defined...". Allerdings wurden die Nullen trotz des Fehler ausgegeben.
Die Batch sieht nun so aus:

[Code]
01.
@echo off & setlocal 
02.
cls 
03.
 
04.
:start 
05.
 
06.
if NOT EXIST Desktop.ini goto renAnoini 
07.
attrib -S -H Desktop.ini > Nul 
08.
ren Desktop.ini Desktop.ini.temptemp > Nul 
09.
:renAnoini 
10.
if NOT EXIST Desktop.ico goto renAnoico 
11.
attrib -S -H Desktop.ico > Nul 
12.
ren Desktop.ico Desktop.ico.temptemp > Nul 
13.
:renAnoico 
14.
 
15.
if [%1] neq [] cd /d %1 2>nul || cd /d "%~dp1" 
16.
 
17.
echo. 
18.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
19.
ECHO. 
20.
echo  Suche nach Desktop.ini's und Desktop.ico's aus allen Unter-.+.Ordnern von... 
21.
echo. 
22.
echo  "%cd%" 
23.
echo. 
24.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
25.
echo. 
26.
echo  ======= Desktop.ini's ======= 
27.
echo. 
28.
 
29.
for /f %%i in ('dir desktop.ini /a-r /s /b 2^>nul^|find /c /i "desktop.ini"') do @set anzahli-r=%%i 
30.
if not defined anzahli-r set anzahli-r=0 
31.
echo    Ohne Schreibschutz: %anzahli-r% 
32.
 
33.
for /f %%i in ('dir desktop.ini /ar /s /b 2^>nul^|find /c /i "desktop.ini"') do @set anzahli+r=%%i 
34.
if not defined anzahli+r set anzahli+r=0 
35.
echo     Mit Schreibschutz: %anzahli+r% 
36.
 
37.
for /f %%i in ('dir desktop.ini /a /s /b 2^>nul^|find /c /i "desktop.ini"') do @set anzahlig=%%i 
38.
if not defined anzahlig set anzahlig=0 
39.
echo          Gesamtanzahl: %anzahlig%  
40.
 
41.
echo. 
42.
echo  ======= Desktop.ico's =======  
43.
echo. 
44.
 
45.
for /f %%i in ('dir desktop.ico /a-r /s /b 2^>nul^|find /c /i "desktop.ico"') do @set anzahlo-r=%%i 
46.
if not defined anzahlo-r set anzahlo-r=0 
47.
echo    Ohne Schreibschutz: %anzahlo-r% 
48.
 
49.
for /f %%i in ('dir desktop.ico /ar /s /b 2^>nul^|find /c /i "desktop.ico"') do @set anzahlo+r=%%i 
50.
if not defined anzahlo+r set anzahlo+r=0 
51.
echo     Mit Schreibschutz: %anzahlo+r%  
52.
 
53.
for /f %%i in ('dir desktop.ico /a /s /b 2^>nul^|find /c /i "desktop.ico"') do @set anzahlog=%%i 
54.
if not defined anzahlog set anzahlog=0 
55.
echo          Gesamtanzahl: %anzahlog%  
56.
 
57.
echo. 
58.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
59.
echo. 
60.
 
61.
if NOT EXIST Desktop.ini.temptemp goto renBnoini 
62.
ren Desktop.ini.temptemp Desktop.ini > Nul 
63.
attrib +S +H Desktop.ini > Nul 
64.
:renBnoini 
65.
if NOT EXIST Desktop.ico.temptemp goto renBnoico 
66.
ren Desktop.ico.temptemp Desktop.ico > Nul 
67.
attrib +S +H Desktop.ico > Nul 
68.
:renBnoico 
69.
 
70.
set choice= 
71.
set /p choice= Ausgeben in Textdatei ? (y/n):  
72.
if not "%choice%" == "" set choice=%choice:~0,1% 
73.
if /i "%choice%" == "y" goto txtja 
74.
if /i "%choice%" == "n" goto txtnein 
75.
 
76.
call :Statistik 
77.
 
78.
set choicef=%choice% 
79.
set choice= 
80.
set /p choice= "%choicef%" ist keine gueltige Eingabe. Druecke y (Ja) oder n (Nein) und dann ENTER:  
81.
if not "%choice%" == "" set choice=%choice:~0,1% 
82.
if /i "%choice%" == "y" goto txtja 
83.
if /i "%choice%" == "n" goto txtnein 
84.
cls 
85.
goto start 
86.
 
87.
:txtja 
88.
set t01="!!! Statistik - Desktop.ini & Desktop.ico's !!!.txt" 
89.
echo. >> %t01%  
90.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- >> %t01% 
91.
ECHO. >> %t01% 
92.
echo  Suche nach Desktop.ini's und Desktop.ico's aus allen Unter-.+.Ordnern von... >> %t01% 
93.
echo. >> %t01% 
94.
echo  "%cd%" >> %t01% 
95.
echo. >> %t01% 
96.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ >> %t01% 
97.
echo. >> %t01% 
98.
echo  ======= Desktop.ini's ======= >> %t01% 
99.
echo. >> %t01% 
100.
echo    Ohne Schreibschutz: %anzahli-r% >> %t01% 
101.
echo     Mit Schreibschutz: %anzahli+r% >> %t01% 
102.
echo          Gesamtanzahl: %anzahlig%  >> %t01% 
103.
echo. >> %t01% 
104.
echo  ======= Desktop.ico's =======  >> %t01% 
105.
echo. >> %t01% 
106.
echo    Ohne Schreibschutz: %anzahlo-r% >> %t01% 
107.
echo     Mit Schreibschutz: %anzahlo+r%  >> %t01% 
108.
echo          Gesamtanzahl: %anzahlog%  >> %t01% 
109.
echo. >> %t01% 
110.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- >> %t01% 
111.
echo. >> %t01% 
112.
 
113.
:txtnein  
114.
call :Statistik 
115.
 
116.
echo  === Exit === 
117.
 
118.
if EXIST C:\WINDOWS\system32\wait_20.exe goto wait_20 
119.
pause 
120.
goto :eof 
121.
 
122.
:wait_20 
123.
wait_20 1 KEY  
124.
 
125.
goto :eof 
126.
:Statistik 
127.
cls 
128.
echo. 
129.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
130.
ECHO. 
131.
echo  Suche nach Desktop.ini's und Desktop.ico's aus allen Unter-.+.Ordnern von... 
132.
echo. 
133.
echo  "%cd%" 
134.
echo. 
135.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
136.
echo. 
137.
echo  ======= Desktop.ini's ======= 
138.
echo. 
139.
echo    Ohne Schreibschutz: %anzahli-r% 
140.
echo     Mit Schreibschutz: %anzahli+r% 
141.
echo          Gesamtanzahl: %anzahlig%  
142.
echo. 
143.
echo  ======= Desktop.ico's =======  
144.
echo. 
145.
echo    Ohne Schreibschutz: %anzahlo-r% 
146.
echo     Mit Schreibschutz: %anzahlo+r%  
147.
echo          Gesamtanzahl: %anzahlog%  
148.
echo. 
149.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
150.
echo.
p.s.: wieso ist der Beitrag schon geschlossen? "Zip Datei per Batch entpacken" http://www.administrator.de/Zip_Datei_per_Batch_entpacken.html

Ich hätte eine Lösung für ihn... er muss nicht auf shareware winrar umsteigen. Alzip kann das was er möchte. Das Prog hat auch keine Probleme mit Dateilängen:
"alzip -a [Laufwerk:][Pfad][Dateiname]" zum packen
"alzip -x [Laufwerk:][Pfad][Dateiname]" zum entpacken
http://www.altools.net
http://www.altools.net/ALTools/ALZip/Features/CommandLine/tabid/118/Def ...
Bitte warten ..
Mitglied: Biber
25.03.2007 um 21:02 Uhr
Moin wobleibtdiezeit und alle anderen,

zu Deiner P.S.-Frage nach dem CommandLine-Zip-Tool-Gesucht-Beitrag...
p.s.: wieso ist der Beitrag schon geschlossen? "Zip Datei per Batch entpacken"

---> ich öffne ihn noch mal, dann kannst Du auch gerne die beiden Links auch dort noch einmal posten.

Die Entscheidung des jeweiligen Mods, einen Beitrag zu schliessen, ist sicherlich immer etwas willkürlich.

Der von Dir erwähnte schien mir aus Sicht des Fragestellers zur Zufriedenheit beantwortet zu sein.

In solchen Fällen schliesse ich den Beitrag meist nach kurzer Schamfrist, weil sonst ....
....irgendein Suchmaschinen-Anwerfer auf der Suche nach einer Lösung über diesen Beitrag stolpert,
nach kurzem Überfliegen (ca 12.sec) der Postings feststellt, dass dort gar keine Antworten auf die Fragen stehen, die ihn nun beschäftigen,
und dann etwas druntersemmelt, was mit den Worten beginnt "Ich hab genau das gleiche Problem".
Was sich ab der zweiten geposteten Zeile allerdings sehr schnell relativiert, weil es dann meist schnell weitergeht mit ...
"...das klappt auch soweit, aber seit ich DSL habe und mein Nachbar eine 1400W-Senseo Turntable Premium,
zeigt mein USB-Stick manchmal weiße Streifen am Rand. Kann ich das auch ohne Adminrechte über die Gruppenlinien ändern?"


Und deshalb möchte dann lieber einen neuen Beitrag eröffnet haben, denn wenn es wirklich exakt das gleiche Problem ist, sollte auch die gepostete und akzeptierte Lösung passen.

Sollte ich natürlich mal zu voreilig sein mit dem Schliessen eines Beitrags, dann jederzeit gerne eine PN an mich (bzw. den zuständigen Mod).
Dann wird der Beitrag wieder eröffnet.
Grüsse
Biber
Bitte warten ..
Mitglied: 45753
25.03.2007 um 23:09 Uhr
Ok, hab's verstanden. Ich habe meine Antwort nun dort posten können.

Grüsse
wobleibtdiezeit
Bitte warten ..
Mitglied: Biber
26.03.2007 um 07:27 Uhr
Danke Dir, wobleibtdiezeit,

habe den anderen Beitrag wieder geschlossen und werde das auch gleich mit diesem hier tun.

Wie geschrieben: eine Wieder-Eröffnung eines Threads ist kein Problem und ich fühle mich durch diesbezügliche PN-Aufforderungen nicht belästigt.

Nerviger finde ich die oben erwähnten Ich-habe-genau-dasselbe-Problem-Nachtröpfler.

Grüsse
Biber
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

HTML
gelöst Mit HTML Datei eine Textdatei auslesen (7)

Frage von Maffi zum Thema HTML ...

Installation
gelöst Mit Powershell in einer Datei eine Zeile auslesen (6)

Frage von Bommi1961 zum Thema Installation ...

Batch & Shell
gelöst Powershell funktioniert nicht richtig beim Auslesen der letzten Zeile (5)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...