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

Bestimmte Werte aus txt-datei auslesen per batch

Frage Entwicklung Batch & Shell

Mitglied: DominikG

DominikG (Level 1) - Jetzt verbinden

26.06.2011 um 21:52 Uhr, 3929 Aufrufe, 26 Kommentare

Hallo,

ich möchte gewisse werte aus einer textdatei auslesen per batch!
Das sind Zahlenwerte die ausgelesen werden, das heißt von einstelligen zahlen bis 5 oder mehr stellen.
also in der textdatei mit zeilenumbruch steht in zeile 15 ab zeichen 50 die zahl 55 als beispiel, wie kann ich diese zahl auslesen bzw jede zahl, die ab dieser stelle steht, egal wie viele stellen diese hat und egal ab wie viel zeichen in dieser zeile die zahl steht?

Vielen Dank
Mitglied: bastla
26.06.2011 um 22:02 Uhr
Hallo DominikG!

Gibt es in Deiner Problemstellung auch irgend etwas Greifbares, oder ist eigentlich alles egal?

Konkreter gefragt:
  • Soll die Zahl in Zeile 15 (oder einer anderen zu identifizierenden Zeile) gesucht werden?
  • Besteht die Zahl nur aus den Ziffern 0-9, oder kann sie auch ein Komma (als "." oder ","?) oder ein Vorzeichen enthalten?
  • Enthält die Zeile nur eine derartige Zahl?

Grüße
bastla
Bitte warten ..
Mitglied: mathe172
26.06.2011 um 22:06 Uhr
Hallo,

eine etwas "hässliche" Möglichkeit wäre folgende (ungetestet):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "File=C:\File.txt" 
03.
 
04.
for /f "usebackq delims=" %%A in ("%File%") do ( 
05.
for /f "skip=14 tokens=1* delims=0123456789" %%B in ("%%A") do ( 
06.
call :ProcessLine "%%A" "%%B" "%%C"  
07.
pause 
08.
goto :eof 
09.
10.
 
11.
:ProcessLine 
12.
set "Line=%~1" 
13.
set "Line=!Line:%~2=!" 
14.
set "Line=!Line:%~3=!" 
15.
echo.%Line% 
16.
goto :eof
Mathe172
Bitte warten ..
Mitglied: bastla
26.06.2011 um 22:19 Uhr
@mathe172
Damit hast Du meine Fragen mit "ja / ersteres / ja" beantwortet ...

Als kleine (ungetestete) "Verschönerung" (die Zerlegung hätte ich aber auch so vorgenommen ):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "File=C:\File.txt" 
03.
 
04.
set "Line=" 
05.
for /f "usebackq skip=14 delims=" %%A in ("%File%") do if not defined Line for /f "tokens=1* delims=0123456789" %%B in ("%%A") do call :ProcessLine "%%A" "%%B" "%%C" 
06.
pause 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
set "Line=%~1" 
11.
set "Line=!Line:%~2=!" 
12.
set "Line=!Line:%~3=!" 
13.
if not defined Line set "Line=nicht gefunden!" 
14.
echo.%Line% 
15.
goto :eof
oder ohne "delayedExpansion":
01.
@echo off & setlocal 
02.
set "File=C:\File.txt" 
03.
 
04.
set "Line=" 
05.
for /f "usebackq skip=14 delims=" %%A in ("%File%") do if not defined Line for /f "tokens=1* delims=0123456789" %%B in ("%%A") do call :ProcessLine "%%A" "%%B" "%%C" 
06.
pause 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
set "Line=%~1" 
11.
call set "Line=%%Line:%~2=%%" 
12.
call set "Line=%%Line:%~3=%%" 
13.
if not defined Line set "Line=nicht gefunden!" 
14.
echo.%Line% 
15.
goto :eof
Grüße
bastla

P.S.: Anstelle von %Line% wäre %Number% eine "sprechendere" Variable ...
Bitte warten ..
Mitglied: DominikG
26.06.2011 um 22:23 Uhr
also ich habe die txt jetz nicht vor mir aber die zeilen müssten immer die gleichen sein und in der zeile stehen mehrere werte hintereinander und der benötigte wert ist der erste (bin mir nicht ganz sicher).
das sind keine zahlen mit komma oder sonstiges
Bitte warten ..
Mitglied: bastla
26.06.2011 um 22:26 Uhr
Hallo DominikG!

Unter den von Dir genannten Annahmen nehme ich an, dass einer der Batches oben das gewünschte Ergebnis liefern sollte ...

Grüße
bastla
Bitte warten ..
Mitglied: DominikG
28.06.2011 um 11:07 Uhr
Also danke für eure Hilfe erst mal aber ich bekomms nicht hin, aber ich hab jetzt die txt-Datei und kopier mal den für mich wichtigen teil jetzt rein:
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 146 131 021 Pre-fail Always - 5700
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 109
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 4218
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 107
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 83
193 Load_Cycle_Count 0x0032 171 171 000 Old_age Always - 89131
194 Temperature_Celsius 0x0022 106 102 000 Old_age Always - 41
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 198 000 Old_age Always - 53
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0

in der TXT-Datei sind diese werte, wie eine Tabelle angeordnet und etwas übersichtlicher. ich benötige immer den letzten wert in den Reihen!


Wie kann ich diese Werte rausziehen per Batch?
Bitte warten ..
Mitglied: BigWim
28.06.2011 um 11:55 Uhr
Moin

ich hatte ein paar Probleme mit den Trennzeichen, aber es funktioniert. Vielleicht nicht elegant, aber es funktioniert

01.
@echo off 
02.
 
03.
for /f "delims=*" %%a in (input.txt) do call :GetLast10Char "%%a" 
04.
goto :eof 
05.
 
06.
:GetLast10Char 
07.
Set Zeile=%1 
08.
Set Last11Char=%Zeile:~-11% 
09.
Set Last10Char=%Last11Char:~0,10% 
10.
for /f "tokens=2 delims=-" %%b in ("%Last10Char%") do Call :Machwat %%b 
11.
goto :eof 
12.
 
13.
 
14.
:MachWat 
15.
Set Zahl=%1 
16.
 
17.
echo Zahl = %Zahl%
Gruß
Markus

[edit]
in Input.txt habe ich Dein Beispiel kopiert
[/edit]
Bitte warten ..
Mitglied: DominikG
28.06.2011 um 12:01 Uhr
aber dies ist nur ein ausschnitt aus der kompletten txt-datei!
diese daten stehen erst in zeile 30 oder so, das ist ja bestimmt nicht mit berücksichtigt oder?
Bitte warten ..
Mitglied: BigWim
28.06.2011 um 13:50 Uhr
Moin,

diese daten stehen erst in zeile 30 oder so, das ist ja bestimmt nicht mit berücksichtigt oder?
Mein Fehler, muß ich wohl überlesen haben, oder?

Wenn es Zeile 30 ist, kannst Du die Zeile 3 anpassen.

01.
for /f "delims=* skip=30" %%a in (input.txt) do call :GetLast10Char "%%a" 
Bei der Umsetzung von oder so reichen leider meine Kenntnisse nicht aus .....

Gruß
Markus
Bitte warten ..
Mitglied: bastla
28.06.2011 um 14:37 Uhr
Hallo DominikG!

Da jetzt doch nicht der erste Wert benötigt wird: Ist es (wie ich Deinen Beispieldaten entnehmen würde) sicher, dass nach dem letzten "_" nur ein "-" und danach dann der gesuchte Wert (immer eine Zahl ohne Vorzeichen und Dezimalstellen?) folgt?

Grüße
bastla
Bitte warten ..
Mitglied: DominikG
28.06.2011 um 14:39 Uhr
ja das ein bindestrich bzw minus und die Zahl ist eine Zahl ohne Vorzeichen und ohne nachkommastellen!
Bitte warten ..
Mitglied: mathe172
28.06.2011 um 16:22 Uhr
Hallo,
sonst schau dir mal dieses Tutorial von Friemler an. Damit ist es möglich, den letzten Token zu bekommen.

Sonst, probiers mal so(@bastla: Die Zeile mit der 3 -hat nach dem letzten "_" zwei "-"):
01.
for /f "usebackq delims=" %%A in ("Input.txt") do ((for %%B in ("%%A") do (set "Last=%%B")) & (call echo.%Last%))
Dieser Code gibt den Wert in allen Zeilen an

Mathe172
Bitte warten ..
Mitglied: bastla
28.06.2011 um 17:33 Uhr
@math172
@bastla: Die Zeile mit der 3 -hat nach dem letzten "_" zwei "-"
So genau hatte ich mir die Daten dann auch nicht angesehen - das ist eigentlich der Job des TE ...

... jedenfalls sollte das auf Basis von BigWims Vorschlag realisierbar sein und auch Dein Ansatz müsste vom Prinzip her klappen - mit Anpassung einiger Details und etwas übersichtlicherer Darstellung könnte der dann zB so aussehen:
01.
@REM mathe172 nachempfunden ;-) 
02.
@echo off & setlocal enabledelayedexpansion 
03.
for /f "usebackq skip=29 delims=" %%A in ("Input.txt") do ( 
04.
    set "Last=nicht gefunden" 
05.
    for %%B in (%%A) do set "Last=%%B" 
06.
    echo !Last! 
07.
)
Grüße
bastla
Bitte warten ..
Mitglied: mathe172
28.06.2011 um 19:00 Uhr
Hallo,
@bastla:
@bastla: Die Zeile mit der 3 -hat nach dem letzten "_" zwei "-"
Ich wollte dich und andere nur darauf hinweisen, da ich die Antwort des TO etwas irreführend fand - war in keinster Weise böse gemeint

Mit freundlichen Grüßen,
Mathe172
P.S.:Notiz an mich: Ich sollte nicht mehr soviele Einzeiler abliefern, nur weil es geht und weil ich nicht Return drücken will - ist unübersichtlich
P.P.S.:Aber für das entziffern für die TE's gibts ja Bastla & Co.
Bitte warten ..
Mitglied: bastla
28.06.2011 um 20:12 Uhr
@mathe172
war in keinster Weise böse gemeint
Habe ich auch nicht so verstanden - ich wollte damit vor allem auf die Bringschuld des TE hinweisen ...
Gegen Einzeiler habe ich grundsätzlich nix einzuwenden - aber bei mir wollte dieser wegen der fehlenden "delayedExpansion" und vor allem wegen der Anführungszeichen um %%A herum (konterkarieren die gute Idee mit der Zerlegung anhand der Leerzeichen) nicht ...

Grüße
bastla
Bitte warten ..
Mitglied: DominikG
29.06.2011 um 08:24 Uhr
Vielen Dank für eure Hilfe!
Ich hab das ganze jetzt getestet und es funktioniert super.
Jetzt habe ich nur noch eine Frage!
Ich möchte gerne noch die Bezeichnungen der Werte, wie sie oben in der tabelle stehen, zuordnen und gleich in variablen setzen, als beispiel:

set "Raw_Read_Error_Rate"=0
set "Spin_Up_Time "=5700
usw

Ist dieses auch zu realisieren?
Bitte warten ..
Mitglied: bastla
29.06.2011 um 09:41 Uhr
Hallo DominikG!

Zu realisieren wäre es zwar etwa so (ungetestet und unter der Voraussetzung, dass die gesuchte Bezeichnung keine Kommata,Semikolons, Leerzeichen enthält):
01.
@REM mathe172 nachempfunden ;-) 
02.
@echo off & setlocal enabledelayedexpansion 
03.
for /f "usebackq skip=29 delims=" %%A in ("Input.txt") do ( 
04.
    set "First=" 
05.
    set "Last=nicht gefunden" 
06.
    for %%B in (%%A) do ( 
07.
        if not defined First set "First=%%B" 
08.
        set "Last=%%B" 
09.
10.
    echo !First!=!Last! 
11.
    set "!First!=!Last!" 
12.
)
- interessant wäre allerdings, welchen Sinn das haben soll ...

Grüße
bastla
Bitte warten ..
Mitglied: DominikG
29.06.2011 um 09:44 Uhr
Das ist einfach nur für eine Berechnung wichtig, wie "gut" es einer Festplatte in Prozent geht!
Bitte warten ..
Mitglied: bastla
29.06.2011 um 10:04 Uhr
Hallo DominikG!

Eigentlich hatte ich gemeint, was es bringen solle, Variablennamen (wie "Raw_Read_Error_Rate"), die sich aus den einzulesenden Daten ergeben, zu verwenden - es sei denn, es wären gesichert immer die gleichen Zeilen (= Variablen) in der Datei, sodass im weiteren Ablauf auf diese Variablen zugegriffen werden könnte ...

Grüße
bastla
Bitte warten ..
Mitglied: DominikG
30.06.2011 um 07:49 Uhr
Sorry das ich hier ständig was neues habe und nerve!
Also ich habe jetzt noch mal alles durchgearbeitet in meiner Textdatei und nach den Werten geschaut die ich aus der Tabelle, welche ich etwas weiter oben eingefügt habe in diesem thread, brauche.
Und zwar brauche ich die werte von den id´s: 1, 5 10, 196, 197, 198!
Diese benötige ich als feste variablen, mit denen ich dann gleich weiter arbeiten kann.

Wäre dies auch mit so einer kleinen Batch zu händeln?

Vielen Dank!
Bitte warten ..
Mitglied: mathe172
30.06.2011 um 13:26 Uhr
Hallo,

wenn ich dich richtig verstanden habe, sollte das gehen:

01.
@REM mathe172 nachempfunden ;-) 
02.
@echo off & setlocal enabledelayedexpansion 
03.
for /f "usebackq skip=29 delims=" %%A in ("Input.txt") do ( 
04.
    set "First=" 
05.
    set "Last=nicht gefunden" 
06.
    for %%B in (%%A) do ( 
07.
        if not defined First set "First=%%B" 
08.
        set "Last=%%B" 
09.
10.
    echo ID!First!=!Last! 
11.
    set "ID!First!=!Last!" 
12.
13.
echo %ID1% 
14.
REM usw....
Für jede ID erstellt der Code eine Variable mit der Form "ID%ID%". Für deine bräuchtest du jetzt: "%ID1%" "%ID5%" "%ID10%" ...
Der Code ist der von Bastla, der ja auch schon die Variablen setzt, nur habe ich die Namensgebung etwas verändert, dass keine Variablennamen rein numerisch sind.

Mathe172
Bitte warten ..
Mitglied: bastla
30.06.2011 um 13:35 Uhr
... wobei mit der geänderten Zeile 11
echo #1#5#10#196#197#198#|findstr "#!First!#">nul && set "ID!First!=!Last!"
die gewünschte Beschränkung erfolgen könnte ...

Grüße
bastla
Bitte warten ..
Mitglied: DominikG
30.06.2011 um 13:49 Uhr
Ich glaube ich mache noch irgendwas falsch, deswegen poste ich jetzt doch mal den ganzen Text dieser TXT-Datei (wollte ich eigentlich vermeiden, weil das schon ziemlich viel ist)
Also wie gesagt, ich brauche nur die genannten Werte als Variable, weil ich mit diesen dann etwas ausrechnen will.



smartctl 5.41 2011-06-09 r3365 [i686-w64-mingw32-vista(64)-sp2] (sf-win32-5.41-1)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Green (Adv. Format)
Device Model: WDC WD10EARS-22Y5B1
Serial Number: WD-WCAV5J426275
LU WWN Device Id: 5 0014ee 25a73f15e
Firmware Version: 80.00A80
User Capacity: 1.000.204.886.016 bytes [1,00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Tue Jun 28 10:56:58 2011 MS
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x84) Offline data collection activity
was suspended by an interrupting command from host.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (22080) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 254) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x3035) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 146 131 021 Pre-fail Always - 5700
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 109
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 4218
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 107
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 83
193 Load_Cycle_Count 0x0032 171 171 000 Old_age Always - 89131
194 Temperature_Celsius 0x0022 106 102 000 Old_age Always - 41
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 198 000 Old_age Always - 53
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
  1. 1 Short offline Completed without error 00% 4119 -
  2. 2 Short offline Aborted by host 90% 1479 -

SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
Bitte warten ..
Mitglied: bastla
30.06.2011 um 14:06 Uhr
Hallo DominikG!

Wenn das jetzt die ganze Wahrheit sein sollte, dann:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Values=Raw_Read_Error_Rate Reallocated_Sector_Ct Spin_Retry_Count Reallocated_Event_Count Current_Pending_Sector Offline_Uncorrectable" 
03.
 
04.
for /f "delims=" %%A in ('findstr "%Values%" "Input.txt"') do ( 
05.
    set "First=" 
06.
    set "Last=nicht gefunden" 
07.
    for %%B in (%%A) do ( 
08.
        if not defined First set "First=%%B" 
09.
        set "Last=%%B" 
10.
11.
    set "ID!First!=!Last!" 
12.
13.
set ID
Grüße
bastla
Bitte warten ..
Mitglied: DominikG
01.07.2011 um 10:15 Uhr
Vielen Dank die Batch läuft super!
Jetzt habe ich meine Batch ja schon fertig mit der ich rechne, aber da müssen diese werte noch alle per hand eingetragen werden.
Wenn ich jetzt meine batch in die Batch, aus der die werte gelsen werden, einfüge kann ich dann mit den werten bzw. den variablen weiter rechnen oder muss da noch mehr gemacht werden damit das läuft?

Meiner Batch:

Zur erklärung schreibe ich noch hinzu, welche abkürzung in meiner batch der id, in der oben von mir geposteten tabelle, entspricht.

RSC=ID5
RE =ID196
CP =ID197
US =ID198
RER=ID1
SRC=ID10


Batch:


01.
@echo off 
02.
 
03.
 
04.
 
05.
set /P rsc1=RSC-Wert eingeben: 
06.
echo %rsc1% * 2 
07.
set /a rsc2=%rsc1%*2 
08.
 
09.
if %rsc2% LSS 70 ( 
10.
     set /a rsc3=100-%rsc2% 
11.
) ELSE ( 
12.
set rsc3=30 
13.
14.
 
15.
echo %rsc3% 
16.
 
17.
 
18.
 
19.
set /P re1=RE-Wert eingeben: 
20.
echo %re1% * 1 
21.
set /a re2=%re1%*1 
22.
 
23.
if %re2% LSS 40 ( 
24.
     set /a re3=100-%re2% 
25.
) ELSE ( 
26.
set re3=60 ) 
27.
 
28.
echo %re3% 
29.
 
30.
 
31.
 
32.
 
33.
set /P cp1=Cp-Wert eingeben: 
34.
echo %cp1% * 1 
35.
set /a cp2=%cp1%*1 
36.
 
37.
if %cp2% LSS 40 ( 
38.
     set /a cp3=100-%cp2% 
39.
) ELSE ( 
40.
set cp3=60 ) 
41.
 
42.
echo %cp3% 
43.
 
44.
 
45.
 
46.
set /P us1=US-Wert eingeben: 
47.
echo %us1% * 2 
48.
set /a us2=%us1%*2 
49.
 
50.
if %us2% LSS 70 ( 
51.
     set /a us3=100-%us2% 
52.
) ELSE ( 
53.
set us3=30 ) 
54.
 
55.
echo %us3% 
56.
 
57.
 
58.
 
59.
 
60.
set /P rer1=RER-Wert eingeben: 
61.
echo %rer1% * 1 
62.
set /a rer2=%rer1%*1 
63.
 
64.
IF %rer2% LSS 10 ( 
65.
     set /a rer3=100-%rer2% 
66.
) ELSE ( 
67.
set rer3=90 ) 
68.
 
69.
echo %rer3% 
70.
 
71.
 
72.
 
73.
 
74.
set /P src1=SRC-Wert eingeben: 
75.
echo %src1% * 2 
76.
set /a src2=%src1%*2 
77.
 
78.
if %src2% LSS 50 ( 
79.
     set /a src3=100-%src2% 
80.
) ELSE ( 
81.
set src3=50 ) 
82.
 
83.
echo %src3% 
84.
 
85.
 
86.
 
87.
 
88.
set /a zustand=%rsc3%*%re3%/100*%cp3%/100*%us3%/100*%rer3%/100*%src3%/100 
89.
 
90.
echo HDD-Zustand: %zustand% 
91.
echo ===================
[Edit Biber] Codeformatierung ergänzt. @56: Das schaffst du auch! [/Edit]
Bitte warten ..
Mitglied: bastla
01.07.2011 um 12:06 Uhr
Hallo DominikG!
Wenn ich jetzt meine batch in die Batch, aus der die werte gelsen werden, einfüge kann ich dann mit den werten bzw. den variablen weiter rechnen oder muss da noch mehr gemacht werden damit das läuft?
Du musst natürlich entweder Deine Zuordnungstabelle zum Übertragen der Variablenwerte einbauen, also:
01.
set "rsc=%ID5%" 
02.
set "re =%ID196%" 
03.
...
oder jedes Vorkommen von zB %rer% durch %ID1% ersetzen - ansonsten sollte das Berechnen so wie vorher funktionieren ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...