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

Statistik Menu - fixen

Frage Entwicklung Batch & Shell

Mitglied: 45753

45753 (Level 1)

26.03.2007, aktualisiert 07:44 Uhr, 2567 Aufrufe, 2 Kommentare

Vorab: ich habe probleme gehabt den Beitrag zu posten... vielleicht ist er zu lang. Deshalb splitte ich diesen nun in zwei posts
...die Teilung zwischen dem Beitrag hat geholfen ...

---

Folgendes Problem habe ich bei der Ausgabe dieser Batch-Datei:

01.
 
02.
[Statistik-Screen-Anfang] 
03.
 
04.
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-  
05.
  
06.
 Suche nach Dateien und Ordner und Objekten aus allen Unter-.+.Ordnern von...  
07.
  
08.
 "D:\Storage.SWInfos"  
09.
  
10.
 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  
11.
  
12.
 ====== Dateien ======  ======= Ordner =======  ====== Objekte ======   
13.
  
14.
    Sichtbar: 43260	    Sichtbar: 6289	    Sichtbar: 49549  
15.
    Schreib.: 110	    Schreib.: 460	    Schreib.: 570  
16.
   Versteckt: 461	   Versteckt: 0		   Versteckt: 461  
17.
      System: 461	      System: 0		      System: 461  
18.
      Archiv: 43720	      Archiv: 0		      Archiv: 43720  
19.
      Gesamt: 43721	      Gesamt: 6289	      Gesamt: 50010  
20.
  
21.
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-  
22.
 
23.
[Statistik-Screen-Ende] 
24.
 
25.
Bei jeder Statistik sieht die Anordnung wieder anders aus. Bei wenigen  
26.
Datei/Ordner/Objekt Funden liegen die Menüs von Ordner/Objekte  
27.
weiter links und bei vielen funden eben weiter rechts.  
28.
Eigendlich sollte das Menü bei der Ausgabe so aussehenIch: 
29.
 
30.
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-  
31.
  
32.
 Suche nach Dateien und Ordner und Objekten aus allen Unter-.+.Ordnern von...  
33.
  
34.
 "D:\Storage.SWInfos"  
35.
  
36.
 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  
37.
  
38.
 ====== Dateien ======  ======= Ordner =======  ====== Objekte ======   
39.
  
40.
    Sichtbar: 43260	     Sichtbar: 6289	      Sichtbar: 49549  
41.
    Schreib.: 110	       Schreib.: 460	       Schreib.: 570  
42.
   Versteckt: 461	      Versteckt: 0		    Versteckt: 461  
43.
      System: 461	         System: 0		       System: 461  
44.
      Archiv: 43720	       Archiv: 0		       Archiv: 43720  
45.
      Gesamt: 43721	       Gesamt: 6289	        Gesamt: 50010  
46.
  
47.
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-  
48.
 
Ich habe tabulatoren zwischen den Zeilen benutzt,doch das kann man vergessen. Leerzeichen funktionieren auch nicht, da die zeile bei der zahl z.B. 461 um zwei zeichen nach rechts rückt. Man braucht also eine immer konstant anzahl an Zeichen zwischen den drei Menüs. Da ich die Anzahl der Leerzeichen zwischen den 6 jeweiligen Auflistungspunkten ja weis, müste es für mich doch die Möglichkeit geben bei z.B. einer Zahl von 43721 mittels eines vergleichs fünf leerzeichen zu löschen um die fünfstellige Zahl dann an diese Stelle zu setzen. Ich habe allerdings keine solch art lösung hier im Forum entdecken können. Ich hätte ein paar ideen, doch zu posten wage ich sie erst wenn z.B. "bastla" auch nichts mehr einfallen sollte

Hier nun das komplette Script:

01.
 
02.
[code] 
03.
@echo off & setlocal 
04.
cls 
05.
 
06.
:start 
07.
 
08.
if [%1] neq [] cd /d %1 2>nul || cd /d "%~dp1" 
09.
 
10.
echo. 
11.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
12.
ECHO. 
13.
echo  Suche nach Dateien und Ordner und Objekten aus allen Unter-.+.Ordnern von... 
14.
echo. 
15.
echo  "%cd%" 
16.
echo. 
17.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
18.
echo. 
19.
echo  ====== Dateien ======  ======= Ordner =======  ====== Objekte ======  
20.
echo. 
21.
 
22.
for /f %%i in ('DIR /A-H-D /S /B 2^>nul^|find /c /i "\"') do @set anzahl1aa=%%i 
23.
if not defined anzahl1aa set anzahl1aa=0 
24.
 
25.
for /f %%i in ('DIR /AD-H /S /B 2^>nul^|find /c /i "\"') do @set anzahl2aa=%%i 
26.
if not defined anzahl2aa set anzahl2aa=0 
27.
 
28.
for /f %%i in ('DIR /A-H /S /B 2^>nul^|find /c /i "\"') do @set anzahl3aa=%%i 
29.
if not defined anzahl3aa set anzahl3aa=0 
30.
 
31.
echo     Sichtbar: %anzahl1aa%	    Sichtbar: %anzahl2aa%	    Sichtbar: %anzahl3aa% 
32.
 
33.
for /f %%i in ('DIR /AR-D /S /B 2^>nul^|find /c /i "\"') do @set anzahl1ab=%%i 
34.
if not defined anzahl1ab set anzahl1ab=0 
35.
 
36.
for /f %%i in ('DIR /ADR /S /B 2^>nul^|find /c /i "\"') do @set anzahl2ab=%%i 
37.
if not defined anzahl2ab set anzahl2ab=0 
38.
 
39.
for /f %%i in ('DIR /AR /S /B 2^>nul^|find /c /i "\"') do @set anzahl3ab=%%i 
40.
if not defined anzahl3ab set anzahl3ab=0 
41.
 
42.
echo     Schreib.: %anzahl1ab%	    Schreib.: %anzahl2ab%	    Schreib.: %anzahl3ab% 
43.
 
44.
for /f %%i in ('DIR /AH-D /S /B 2^>nul^|find /c /i "\"') do @set anzahl1ac=%%i 
45.
if not defined anzahl1ac set anzahl1ac=0 
46.
 
47.
for /f %%i in ('DIR /ADH /S /B 2^>nul^|find /c /i "\"') do @set anzahl2ac=%%i 
48.
if not defined anzahl2ac set anzahl2ac=0 
49.
 
50.
for /f %%i in ('DIR /AH /S /B 2^>nul^|find /c /i "\"') do @set anzahl3ac=%%i 
51.
if not defined anzahl3ac set anzahl3ac=0 
52.
 
53.
echo    Versteckt: %anzahl1ac%	   Versteckt: %anzahl2ac%		   Versteckt: %anzahl3ac% 
54.
 
55.
for /f %%i in ('DIR /AS-D /S /B 2^>nul^|find /c /i "\"') do @set anzahl1ad=%%i 
56.
if not defined anzahl1ad set anzahl1ad=0 
57.
 
58.
for /f %%i in ('DIR /ADS /S /B 2^>nul^|find /c /i "\"') do @set anzahl2ad=%%i 
59.
if not defined anzahl2ad set anzahl2ad=0 
60.
 
61.
for /f %%i in ('DIR /AS /S /B 2^>nul^|find /c /i "\"') do @set anzahl3ad=%%i 
62.
if not defined anzahl3ad set anzahl3ad=0 
63.
 
64.
echo       System: %anzahl1ad%	      System: %anzahl2ad%		      System: %anzahl3ad% 
65.
 
66.
for /f %%i in ('DIR /AA-D /S /B 2^>nul^|find /c /i "\"') do @set anzahl1ae=%%i 
67.
if not defined anzahl1ae set anzahl1ae=0 
68.
 
69.
for /f %%i in ('DIR /ADA /S /B 2^>nul^|find /c /i "\"') do @set anzahl2ae=%%i 
70.
if not defined anzahl2ae set anzahl2ae=0 
71.
 
72.
for /f %%i in ('DIR /AA /S /B 2^>nul^|find /c /i "\"') do @set anzahl3ae=%%i 
73.
if not defined anzahl3ae set anzahl3ae=0 
74.
 
75.
echo       Archiv: %anzahl1ae%	      Archiv: %anzahl2ae%		      Archiv: %anzahl3ae% 
76.
 
77.
for /f %%i in ('DIR /A-D /S /B 2^>nul^|find /c /i "\"') do @set anzahl1af=%%i 
78.
if not defined anzahl1af set anzahl1af=0 
79.
 
80.
for /f %%i in ('DIR /AD /S /B 2^>nul^|find /c /i "\"') do @set anzahl2af=%%i 
81.
if not defined anzahl2af set anzahl2af=0 
82.
 
83.
for /f %%i in ('DIR /A /S /B 2^>nul^|find /c /i "\"') do @set anzahl3af=%%i 
84.
if not defined anzahl3af set anzahl3af=0 
85.
 
86.
echo       Gesamt: %anzahl1af%	      Gesamt: %anzahl2af%	      Gesamt: %anzahl3af% 
87.
 
88.
echo. 
89.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
90.
echo. 
91.
 
92.
set choice= 
93.
set /p choice= Ausgeben in Textdatei ? (y/n):  
94.
if not "%choice%" == "" set choice=%choice:~0,1% 
95.
if /i "%choice%" == "y" goto txtja 
96.
if /i "%choice%" == "n" goto txtnein 
97.
 
98.
call :Statistik 
99.
 
100.
set choicef=%choice% 
101.
set choice= 
102.
set /p choice= "%choicef%" ist keine gueltige Eingabe. Druecke y (Ja) oder n (Nein) und dann ENTER:  
103.
if not "%choice%" == "" set choice=%choice:~0,1% 
104.
if /i "%choice%" == "y" goto txtja 
105.
if /i "%choice%" == "n" goto txtnein 
106.
cls 
107.
goto start 
108.
 
109.
:txtja 
110.
set t01="!!! Statistik - Dateien & Ordner & Objekte - ALLER Unter-.+.Ordner !!!.txt" 
111.
echo. >> %t01% 
112.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- >> %t01% 
113.
ECHO. >> %t01% 
114.
echo  Suche nach Dateien und Ordner und Objekten aus allen Unter-.+.Ordnern von... >> %t01% 
115.
echo. >> %t01% 
116.
echo  "%cd%" >> %t01% 
117.
echo. >> %t01% 
118.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ >> %t01% 
119.
echo. >> %t01% 
120.
echo  ====== Dateien ======  ======= Ordner =======  ====== Objekte ======  >> %t01% 
121.
echo. >> %t01% 
122.
echo     Sichtbar: %anzahl1aa%	    Sichtbar: %anzahl2aa%	    Sichtbar: %anzahl3aa% >> %t01% 
123.
echo     Schreib.: %anzahl1ab%	    Schreib.: %anzahl2ab%	    Schreib.: %anzahl3ab% >> %t01% 
124.
echo    Versteckt: %anzahl1ac%	   Versteckt: %anzahl2ac%		   Versteckt: %anzahl3ac% >> %t01% 
125.
echo       System: %anzahl1ad%	      System: %anzahl2ad%		      System: %anzahl3ad% >> %t01% 
126.
echo       Archiv: %anzahl1ae%	      Archiv: %anzahl2ae%		      Archiv: %anzahl3ae% >> %t01% 
127.
echo       Gesamt: %anzahl1af%	      Gesamt: %anzahl2af%	      Gesamt: %anzahl3af% >> %t01% 
128.
echo. >> %t01% 
129.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- >> %t01% 
130.
echo. >> %t01% 
131.
 
132.
:txtnein  
133.
call :Statistik 
134.
 
135.
echo  === Exit === 
136.
 
137.
if EXIST C:\WINDOWS\system32\wait_20.exe goto wait_20 
138.
pause 
139.
goto :eof 
140.
 
141.
:wait_20 
142.
wait_20 1 KEY  
143.
 
144.
goto :eof 
145.
:Statistik 
146.
cls 
147.
echo. 
148.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
149.
ECHO. 
150.
echo  Suche nach Dateien und Ordner und Objekten aus allen Unter-.+.Ordnern von... 
151.
echo. 
152.
echo  "%cd%" 
153.
echo. 
154.
echo  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
155.
echo. 
156.
echo  ====== Dateien ======  ======= Ordner =======  ====== Objekte ======  
157.
echo. 
158.
echo     Sichtbar: %anzahl1aa%	    Sichtbar: %anzahl2aa%	    Sichtbar: %anzahl3aa% 
159.
echo     Schreib.: %anzahl1ab%	    Schreib.: %anzahl2ab%	    Schreib.: %anzahl3ab% 
160.
echo    Versteckt: %anzahl1ac%	   Versteckt: %anzahl2ac%		   Versteckt: %anzahl3ac% 
161.
echo       System: %anzahl1ad%	      System: %anzahl2ad%		      System: %anzahl3ad% 
162.
echo       Archiv: %anzahl1ae%	      Archiv: %anzahl2ae%		      Archiv: %anzahl3ae% 
163.
echo       Gesamt: %anzahl1af%	      Gesamt: %anzahl2af%	      Gesamt: %anzahl3af% 
164.
echo. 
165.
echo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- 
166.
echo. 
167.
[code] 
168.
 
Ich wäre für jede idee dankbar!

Grüsse
wobleibtdiezeit
Mitglied: filippg
26.03.2007 um 02:10 Uhr
Hallo,

als Lösungsansatz: du kannst ja ermitteln, wie viele Stellen die Zahl hat und dann in Abhängigkeit davon in einer Schleife Leerzeichen einfügen. Am besten schreibst du dafür eine "Funktion" (Bereich zwischen zwei Sprungmarken", die dann dafür verwenden kannst.

Filipp
Bitte warten ..
Mitglied: Biber
26.03.2007 um 07:44 Uhr
Moin wobleibtdiezeit,

kann mich filipp's Strategie (grundsätzlich) nur anschliessen.

In diesem Fall, also beim Thema "Funktionen" und eigentlich sogar bei der Notwendigkeit einer Parameterübergabe per reference gibt allerdings der Batch-Syntaxumfang wenig her, was elegant oder wartbar wäre.

Deshalb wirst Du wahrscheinlich um ein paar zusätzliche Zeilen nach folgendem Muster nicht herumkommen:
01.
... 
02.
REM Jetzt: <i>if not defined anzahl3ae set anzahl3ae=0</i> 
03.
 
04.
REM Neu: (angenommen 10 Zeichen seien die gewünschte anzuzeigende Stellenanzahl 
05.
REM Step 1: Variable auf laaaaaaange Stellenanzahl, also größergleich MAX bringen 
06.
if not defined anzahl3ae (set "anzahl3ae=                 0")  else (set "anzahl3ae=             %anzahl3ae%") 
07.
REM Step2: auf die letzten (also minus) 10 Stellen der Variablen verkürzen. 
08.
set anzahl3ae=%anzahl3ae:~-10% 
09.
 
10.
:: --------oder das zweite SET einsparen und unten in den ECHO-Zeilen direkt schreiben "echo %anzahl3ae:~-10%" etc.
Gruss
Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...