freien Festplattenspeicher über die Kommandozeile abfragen
Möchte freien Speicherplatz mehrer Server im Netzwerk abfragen und in einer Datei ablegen
Ich hab folgendes Problem, ich möchte den freien Speicherplatz (Festplatte) via Kommandozeile ermitteln. Die Informationen sollen von mehreren Servern abgefragt und in eine Textdatei zusammengefasst werden.
Als Mittel würde ich am liebsten die standartmäßige Kommandozeile nutzen evtl. auch noch den WSH (Windows Scripting Host).
Nach dem ich mich aus den Lösungsvorschlägen für den Shell weg entschieden hatte und mir Biber sehr viel geholfen hat, kamm ich nun endlich zu einem brauchbaren Zwischenergebnis. Meine beiden variablen werden ausgegeben.
@echo off
@for %%a in (c: ) do @for /f "tokens=3" %%i in ('dir /-c %%a^|find /i "Bytes fre"') do (set fs_drive=%%a) & (set fs_space=%%i)
echo Laufwerk %fs_drive%\ %fs_space% Bytes Frei
Jetzt müsste nur noch die umrechnung in Megabyte erfolgen. Ich ab probiert den befehl "SET" mit der Option "/a" zu nutzen um den Wert hinter dem Gleichheitszeichen mit arithmetischen Operatoren zu verrechnen (durch 1024).
bei mir kamm immer folgender Fehler:
H:\Skripte>(set fs_drive=c: ) & (set /A fs_space="78326009856 / 1024" )
Ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits.
H:\Skripte>echo Laufwerk c:\ 78326009856 / 1024 Bytes Frei
Laufwerk c:\ 78326009856 / 1024 Bytes Frei
Liegt es an der Definition der Variable? oder hab ich einfach einen Syntax Fehler oder ähnliches Gemacht?
Für Hilfe wäre ich weiterhin sehr dankbar
Ich hab folgendes Problem, ich möchte den freien Speicherplatz (Festplatte) via Kommandozeile ermitteln. Die Informationen sollen von mehreren Servern abgefragt und in eine Textdatei zusammengefasst werden.
Als Mittel würde ich am liebsten die standartmäßige Kommandozeile nutzen evtl. auch noch den WSH (Windows Scripting Host).
Nach dem ich mich aus den Lösungsvorschlägen für den Shell weg entschieden hatte und mir Biber sehr viel geholfen hat, kamm ich nun endlich zu einem brauchbaren Zwischenergebnis. Meine beiden variablen werden ausgegeben.
@echo off
@for %%a in (c: ) do @for /f "tokens=3" %%i in ('dir /-c %%a^|find /i "Bytes fre"') do (set fs_drive=%%a) & (set fs_space=%%i)
echo Laufwerk %fs_drive%\ %fs_space% Bytes Frei
Jetzt müsste nur noch die umrechnung in Megabyte erfolgen. Ich ab probiert den befehl "SET" mit der Option "/a" zu nutzen um den Wert hinter dem Gleichheitszeichen mit arithmetischen Operatoren zu verrechnen (durch 1024).
bei mir kamm immer folgender Fehler:
H:\Skripte>(set fs_drive=c: ) & (set /A fs_space="78326009856 / 1024" )
Ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits.
H:\Skripte>echo Laufwerk c:\ 78326009856 / 1024 Bytes Frei
Laufwerk c:\ 78326009856 / 1024 Bytes Frei
Liegt es an der Definition der Variable? oder hab ich einfach einen Syntax Fehler oder ähnliches Gemacht?
Für Hilfe wäre ich weiterhin sehr dankbar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 29650
Url: https://administrator.de/contentid/29650
Ausgedruckt am: 25.11.2024 um 14:11 Uhr
39 Kommentare
Neuester Kommentar
diskpart
http://support.microsoft.com/default.aspx?scid=http%3A%2F%2Fwww.microso ...
Der Befehl detail disk liefert ausführliche Informationen zu dem Datenträger, der momentan den Fokus hat.
Beispiel: Diskpart> select disk 3
Datenträger 3 ist der derzeit gewählte Datenträger.
Diskpart> detail disk
Maxtor 90432D2
Datenträgerkennung: F549D151
Typ : IDE
Bus : 0
Ziel : 0
LUN ID : 0
Volume ### Bst Bezeichnung Ds Typ Größe Status Info
---------- --- ----------- ----- ---------------- ------- --------- --------
Volume 0 F My RAID Set NTFS RAID-5 4096 MB OK
Volume 1 G FATSTRIPE FAT32 Stripe 6144 MB OK
Volume 2 H My Mirror NTFS Spiegel 2048 MB OK
Volume 3 I My Span NTFS Übergreifend 9 GB OK
http://support.microsoft.com/default.aspx?scid=http%3A%2F%2Fwww.microso ...
Der Befehl detail disk liefert ausführliche Informationen zu dem Datenträger, der momentan den Fokus hat.
Beispiel: Diskpart> select disk 3
Datenträger 3 ist der derzeit gewählte Datenträger.
Diskpart> detail disk
Maxtor 90432D2
Datenträgerkennung: F549D151
Typ : IDE
Bus : 0
Ziel : 0
LUN ID : 0
Volume ### Bst Bezeichnung Ds Typ Größe Status Info
---------- --- ----------- ----- ---------------- ------- --------- --------
Volume 0 F My RAID Set NTFS RAID-5 4096 MB OK
Volume 1 G FATSTRIPE FAT32 Stripe 6144 MB OK
Volume 2 H My Mirror NTFS Spiegel 2048 MB OK
Volume 3 I My Span NTFS Übergreifend 9 GB OK
Hi,
wenn du entfernte Rechner abfragen willst, empfehl ich dir das über SNMP zu machen.
Hier
http://www.snmp-informant.com/
findest du ein Tool dafür das auch einen Client für die Kommandozeile enthält soweit ich weiss.
Vielleicht schaust du auch mal hier
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ .
Damit kannst du die Festplattennutzung grafisch darstellen
poortramp
wenn du entfernte Rechner abfragen willst, empfehl ich dir das über SNMP zu machen.
Hier
http://www.snmp-informant.com/
findest du ein Tool dafür das auch einen Client für die Kommandozeile enthält soweit ich weiss.
Vielleicht schaust du auch mal hier
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ .
Damit kannst du die Festplattennutzung grafisch darstellen
poortramp
Moin, The-Warlord,
such mal in "Batch & Shell" nach "Festplattenplatz" ... da sollten schon ein paar Varianten da sein.
Sinngemäß so vom CMD-Prompt aus, wenn V:, W:, X:, Z: die anzuzeigenden Netzlaufwerke sind:
@for %a in ( V W X Z) do @for /f "tokens=3" %i in ('dir %a^:^|find /i "Bytes fre"') do @echo Lw %a: %i Bytes Frei
Als Batch jeweils statt %a und %i dann %%a und %%i
Hope That Helps
Biber
such mal in "Batch & Shell" nach "Festplattenplatz" ... da sollten schon ein paar Varianten da sein.
Sinngemäß so vom CMD-Prompt aus, wenn V:, W:, X:, Z: die anzuzeigenden Netzlaufwerke sind:
@for %a in ( V W X Z) do @for /f "tokens=3" %i in ('dir %a^:^|find /i "Bytes fre"') do @echo Lw %a: %i Bytes Frei
Als Batch jeweils statt %a und %i dann %%a und %%i
Hope That Helps
Biber
Hallo!
Nimm "psTools" von Sysinternals... http://www.sysinternals.com
Da ist ein Tool namens psinfo dabei... reicht vollkommen aus und ist darüberhinaus auch noch in der Lage über das Netzwerk andere Rechner zu überprüfen... und das beste ist.. .es ist einfach schön klein.
Gruß
Markus
Nimm "psTools" von Sysinternals... http://www.sysinternals.com
Da ist ein Tool namens psinfo dabei... reicht vollkommen aus und ist darüberhinaus auch noch in der Lage über das Netzwerk andere Rechner zu überprüfen... und das beste ist.. .es ist einfach schön klein.
Gruß
Markus
Muhaha - wird ja immer skuriller, der Tipps-und Tricks-Hagelschauer.
Was stimmt mit diskpart nicht? Ist doch genau das worum es hier geht...
Was stimmt mit diskpart nicht? Ist doch genau das worum es hier geht...
hier das ganze mal mit WMI und WSH :o)
speichern als *.vbs
Du gibst am start den adminlogin ein und den rechner von dem du es auslesen willst.
hier:
For Each objItem In colItems
Message = Message & ("Name: " & objItem.Name) &vbcrlf
Message = Message & ("FreeSpace: " & objItem.FreeSpace / CONVERSION_FACTOR & " MB") &vbcrlf
Message = Message & ("Size: " & objItem.Size / CONVERSION_FACTOR & " MB") &vbcrlf
Next
sind die Dinge die ausgegeben werden
Du willst nur z.b. von C: haben?
Dann änder diese Zeile:
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk")
in
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE name='C:'")
Bei weiteren Problemen einfach fragen!
*editiert und einen Fehler behoben*
speichern als *.vbs
On Error Resume Next
Pfad = "c:\hdd.txt"
set fso = CreateObject("Scripting.FileSystemObject")
Const CONVERSION_FACTOR = 1048576
Const WbemAuthenticationLevelPktPrivacy = 6
strUser = InputBox("Please enter the user name: ")
strPassword = InputBox ("Please enter the Passwort: ")
strNamespace = "root\cimv2"
'Wiederholt so lange Host erreichbar ist bzw nicht unbekannter host als Meldung erscheint!
do
strComputer = InputBox ("Please enter the name of the computer you want to connect to: ")
If strComputer = "" Then
do
strComputer = InputBox("Please enter correct Computername: ")
loop until strComputer <> "" OR strComputer = False
End If
'Erreichbarkeit des PC's testen - Ping==================
Set objShell = CreateObject("WScript.Shell")
strCommand = "%comspec% /c ping -n 3 -w 1000 " & strComputer & "" 'Ping ausführen
Set objExecObject = objShell.Exec(strCommand)
'=======================================================
Do While Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadAll()
If Instr(strText, "Anforderung") > 0 Then
objshell.popup "Host " & strComputer & " nicht erreichbar!",3
elseif Instr(strText, "Unbekannter Host " & strComputer & ".") <> 0 then
objshell.popup "Host " & strComputer & " nicht erreichbar!",3
end if
loop
loop while Instr(strText, "Unbekannter Host " & strComputer & ".")<>0 OR Instr(strText, "Anforderung") > 0
'=======================================================
'Verbindung zum WMI Namespace herstellen================
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer (strComputer, strNamespace, strUser, strPassword)
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy
'=======================================================
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk")
For Each objItem In colItems
Message = Message & ("Name: " & objItem.Name) &vbcrlf
Message = Message & ("FreeSpace: " & objItem.FreeSpace / CONVERSION_FACTOR & " MB") &vbcrlf
Message = Message & ("Size: " & objItem.Size / CONVERSION_FACTOR & " MB") &vbcrlf
Next
set fsoFile = fso.CreateTextFile(Pfad, true)
'Schreibt den Inhalt der Variablen in () in die Textdatei
fsoFile.WriteLine(Message)
'TextDatei schliessen und Objekte terminieren===========
fsoFile.close
set fsoFile = nothing
set fso = nothing
Du gibst am start den adminlogin ein und den rechner von dem du es auslesen willst.
hier:
For Each objItem In colItems
Message = Message & ("Name: " & objItem.Name) &vbcrlf
Message = Message & ("FreeSpace: " & objItem.FreeSpace / CONVERSION_FACTOR & " MB") &vbcrlf
Message = Message & ("Size: " & objItem.Size / CONVERSION_FACTOR & " MB") &vbcrlf
Next
sind die Dinge die ausgegeben werden
Du willst nur z.b. von C: haben?
Dann änder diese Zeile:
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk")
in
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE name='C:'")
Bei weiteren Problemen einfach fragen!
*editiert und einen Fehler behoben*
Welches OS hast du denn im Betrieb?
Was für ein Fehler kommt?
ah ok, der hat ein "_" verschluckt
Am ende von zeile mach ein " _" ohne anführungsstriche.
Damit bewirkst du, dass der diese Zeile in der nächsten forgesetzt wird:
Alternativ
Edit: Ok, dass Forum verschluckt die "_" .... ersetz UNTERSTRICH durch nen "_"
*Dieser ganze Beitrag hat sich im folge der oberen Änderung erledigt ->IRRELEVANT und Fehlerhaft*
Was für ein Fehler kommt?
ah ok, der hat ein "_" verschluckt
Am ende von zeile mach ein " _" ohne anführungsstriche.
Damit bewirkst du, dass der diese Zeile in der nächsten forgesetzt wird:
Function GetWMIServices()
Set GetWMIServices = GetObject("winmgmts:" UNTERSTRICH
& "{impersonationLevel=impersonate}!\\" & strComputer & strNamespace)
End Function
Function GetWMIServices()
Set GetWMIServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & strNamespace)
End Function
*Dieser ganze Beitrag hat sich im folge der oberen Änderung erledigt ->IRRELEVANT und Fehlerhaft*
Na,
ich geb ja zu, dass ich es nicht mit einem Oneliner hinbekomme, wenn es in Giga- oder TeraByte dargestellt werden soll, aber eine halbe Seite VB-Skript scheint mir doch übertrieben für die banale Frage.
Hier noch mal ein Quickie als Batch:
Aufruf mit ein paar Laufwerken:
$cmd$>f:\getfreespace.bat c e d f y
Laufwerk c:\ 9 GigaByte frei
Laufwerk e:\ 736 KByte frei
Laufwerk d:\ 59 GigaByte frei
Laufwerk f:\ 302 MByte frei
Laufwerk y:\ 23 GigaByte frei
Der CMD-Interpreter kann nur "rechnen" mit Zahlen knapp über 2 GigaByte (2^^32).
(siehe "Bugs im CMD-Interpreter", Biber 2006, Seite 489ff)
Aber deswegen braucht man/frau doch nicht gleich aufs Bätchen zu verzichten..
Grüße
Biber
ich geb ja zu, dass ich es nicht mit einem Oneliner hinbekomme, wenn es in Giga- oder TeraByte dargestellt werden soll, aber eine halbe Seite VB-Skript scheint mir doch übertrieben für die banale Frage.
Hier noch mal ein Quickie als Batch:
::------snipp getfreespace.bat
@echo off & setlocal enabledelayedexpansion
@for %%a in (%*) do @for /f "tokens=3" %%i in ('dir /-c %%a:^|find /i "Bytes fre"') do call :calc %%a %%i
goto disp
:calc
(Set "Dim=GigaByte") & (set fs_drive%1=%1) & set fs_space=%2
set /a fs_space=%fs_space:~0,-9%+0
if %fs_space% == 0 (set /a fs_space=%2/1024) && set "Dim=KByte"
if [%Dim%]==[KByte] if %fs_space% GTR 1024 (set /a fs_space/=1024) && set "Dim=MByte"
if [%Dim%]==[GigaByte] if %fs_space% GTR 1024 (set /a fs_space/=1024) && set "Dim=TeraByte"
if [%Dim%]==[GigaByte] if %fs_space% GTR 1024 (set /a fs_space/=1024) && set "Dim=PetaByte"
set "fs_space%1=%fs_space% %dim% frei"
goto :eof
:disp
For %%i in (%*) do echo Laufwerk !fs_drive%%i!:\ !fs_space%%i!
::------snapp getfreespace.bat
$cmd$>f:\getfreespace.bat c e d f y
Laufwerk c:\ 9 GigaByte frei
Laufwerk e:\ 736 KByte frei
Laufwerk d:\ 59 GigaByte frei
Laufwerk f:\ 302 MByte frei
Laufwerk y:\ 23 GigaByte frei
Der CMD-Interpreter kann nur "rechnen" mit Zahlen knapp über 2 GigaByte (2^^32).
(siehe "Bugs im CMD-Interpreter", Biber 2006, Seite 489ff)
Aber deswegen braucht man/frau doch nicht gleich aufs Bätchen zu verzichten..
Grüße
Biber
Nun gut, vorteil bei mir ist:
ich kann das von jedem beliebigen rechner aus tun und von jedem abfragen auf den ich admin rechte habe :o)
Für mich ein sehr wichtiger Punkt, da ich im moment an einem sehr umfangreichen Netzwerktool arbeite auf Basis von WMI, Vbscript und MySQL.
Desweiteren habe ich deswegen auch eine überprüfung drin ob der PC vorhanden ist und an ist ... wenn ich kürze hab ich auch nicht viel mehr *g
ich kann das von jedem beliebigen rechner aus tun und von jedem abfragen auf den ich admin rechte habe :o)
Für mich ein sehr wichtiger Punkt, da ich im moment an einem sehr umfangreichen Netzwerktool arbeite auf Basis von WMI, Vbscript und MySQL.
Desweiteren habe ich deswegen auch eine überprüfung drin ob der PC vorhanden ist und an ist ... wenn ich kürze hab ich auch nicht viel mehr *g
@Xaero1982
Ich wollte auch nicht für die native Batchprogrammierung werben... habe auch keine Berührungsängste mit VBSkript mehr.
Es erschien mir nur für den Krams zu aufwändig... natürlich funktioniert es auch mit Deinem Schnipsel.
Und -um noch einen einen letzten Gag loszuwerden, meine Prüfung, ob Laufwerk vorhanden oder nicht, die reiche ich noch nach:
::------snipp getfreespaceMitLaufwerksprüfung.bat
@echo off & setlocal enabledelayedexpansion
@for %%a in (%*) do @for /f "tokens=3" %%i in ('dir /-c %%a: ^2^>nul^|find /i "Bytes fre"') do call :calc %%a %%i
goto disp
:calc
(Set "Dim=GigaByte") & (set fs_drive%1=%1) & set fs_space=%2
set /a fs_space=%fs_space:~0,-9%+0
if %fs_space% == 0 (set /a fs_space=%2/1024) && set "Dim=KByte"
if [%Dim%]==[KByte] if %fs_space% GTR 1024 (set /a fs_space/=1024) && set "Dim=MByte"
if [%Dim%]==[GigaByte] if %fs_space% GTR 1024 (set /a fs_space/=1024) && set "Dim=TeraByte"
if [%Dim%]==[GigaByte] if %fs_space% GTR 1024 (set /a fs_space/=1024) && set "Dim=PetaByte"
set "fs_space%1=%fs_space% %dim% frei"
goto :eof
:disp
For %%i in (%*) do if exist %%i: echo Laufwerk !fs_drive%%i!:\ !fs_space%%i!
::------snapp getfreespaceMitLaufwerksprüfung.bat
Just kidding... *gg
Biber
P.S.
@27119
Kann die Diskpart.exe denn auch andere Laufwerke als die des eigenen Rechners?
Ich dachte, das M$-Beispiel bezieht sich auf einen Server mit 6 Logischen Laufwerks-Buchstaben??
Natürlich gehts auch viel kürzer
Wobei der Großteil hier wieder nur für den Connect auf anderen Maschinen drauf geht. Solls nur für den localen sein geht wieder jede Menge weg
*Editiert und Fehler behoben*
On Error Resume Next
Pfad = "c:\hdd.txt"
set fso = CreateObject("Scripting.FileSystemObject")
Const CONVERSION_FACTOR = 1048576
Const WbemAuthenticationLevelPktPrivacy = 6
strUser = InputBox("Please enter the user name: ")
strPassword = InputBox ("Please enter the Passwort: ")
strComputer = InputBox ("Please enter the Computername: ")
strNamespace = "root\cimv2"
'Verbindung zum WMI Namespace herstellen================
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer (strComputer, strNamespace, strUser, strPassword)
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy
'=======================================================
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk")
For Each objItem In colItems
Message = Message & ("Name: " & objItem.Name) &vbcrlf
Message = Message & ("FreeSpace: " & objItem.FreeSpace / CONVERSION_FACTOR & " MB") &vbcrlf
Message = Message & ("Size: " & objItem.Size / CONVERSION_FACTOR & " MB") &vbcrlf
Next
set fsoFile = fso.CreateTextFile(Pfad, true)
fsoFile.WriteLine(Message)
fsoFile.close
set fsoFile = nothing
set fso = nothing
Wobei der Großteil hier wieder nur für den Connect auf anderen Maschinen drauf geht. Solls nur für den localen sein geht wieder jede Menge weg
*Editiert und Fehler behoben*
*gggg @Xaero1982
...ich sehe schon, wir kommen ins Geschäft...
Ich könnte aus meinem Batch auch noch ein paar Zeilen eindampfen.
Aber ich denke, wir habe nun beide gezeigt, dass man auch mit Bordmitteln und MacGywer-Methoden unter Windows zu Ergebnissen kommen kann.
Weiterhin vergnüglichen Abend
Biber
...ich sehe schon, wir kommen ins Geschäft...
Ich könnte aus meinem Batch auch noch ein paar Zeilen eindampfen.
Aber ich denke, wir habe nun beide gezeigt, dass man auch mit Bordmitteln und MacGywer-Methoden unter Windows zu Ergebnissen kommen kann.
Weiterhin vergnüglichen Abend
Biber
Jo, halt ich auch für lösbar...
Wenn die Textdatei einen Laufwerksbuchstaben je Zeile hätte, dann halt auslesen mit
FOR /F.. IN..(textdatei.txt) DO ....
anstelle der jetzigen FOR ..IN..( F G H I J) DO..-Schleife.
Wenn die nur aus aus einer Zeile besteht ( U V W X X Z), dann diese Zeile in eine Variable einlesen mit:
Set /P Alldisks=<textdatei.txt
Soweit zum Thema Batch.
Grüße Biber
Wenn die Textdatei einen Laufwerksbuchstaben je Zeile hätte, dann halt auslesen mit
FOR /F.. IN..(textdatei.txt) DO ....
anstelle der jetzigen FOR ..IN..( F G H I J) DO..-Schleife.
Wenn die nur aus aus einer Zeile besteht ( U V W X X Z), dann diese Zeile in eine Variable einlesen mit:
Set /P Alldisks=<textdatei.txt
Soweit zum Thema Batch.
Grüße Biber
Moin The-Warlord,
so unähnlich ist es unterm CMD der Linux-Shell nicht.
Statt
if a <> b then
commando
commando
commando
fi
dann im CMD-Batch:
if a NEQ b (
commando
commando
commando
)
nur mit dem Unterschied, dass neue Zeilen vor allen Dingen anfangen dürfen nach einer KlammerAuf nach IF [%var%] == [wert] .. (oder LSS, GTR, NEQ, GEQ... etc als Vergleichsoperator)
-oder-
KlammerAuf nach einer FOR..IN..(..) DO - Anweisung.
Also:
If [%date%]==[01.01.2007] (
echo Frohes neues Jahr!
echo Und Guten Rutsch!
)
-oder-
FOR ..... in (bla bla blubb) DO (
Call WhateverUWant#
echo Fertig!
)
If [%date%]==[01.01.2007] (
...
) ELSE (
)
ist auch erlaubt.
Details siehe unter
IF /?
FOR /?
SET /?
am CMD-Prompt.
Gruß Biber
/Edit: die zweite Frage: Suche mal über Forumssuche hier nach "DelayedExpansion".
Da hab ich das schon mal erklärt.
so unähnlich ist es unterm CMD der Linux-Shell nicht.
Statt
if a <> b then
commando
commando
commando
fi
dann im CMD-Batch:
if a NEQ b (
commando
commando
commando
)
nur mit dem Unterschied, dass neue Zeilen vor allen Dingen anfangen dürfen nach einer KlammerAuf nach IF [%var%] == [wert] .. (oder LSS, GTR, NEQ, GEQ... etc als Vergleichsoperator)
-oder-
KlammerAuf nach einer FOR..IN..(..) DO - Anweisung.
Also:
If [%date%]==[01.01.2007] (
echo Frohes neues Jahr!
echo Und Guten Rutsch!
)
-oder-
FOR ..... in (bla bla blubb) DO (
Call WhateverUWant#
echo Fertig!
)
If [%date%]==[01.01.2007] (
...
) ELSE (
)
ist auch erlaubt.
Details siehe unter
IF /?
FOR /?
SET /?
am CMD-Prompt.
Gruß Biber
/Edit: die zweite Frage: Suche mal über Forumssuche hier nach "DelayedExpansion".
Da hab ich das schon mal erklärt.
Ach, das sehe ich nicht so ...
Ich hab auch keinen Schimmer von shell :o)
Und ein wenig von WSH
Und verflucht es hat auf diesem Planeten keiner AHnung von WMI außer den MS ScriptingGuys und die antworten nicht
Edit:
Das mit den Netzlaufwerkverbindungen ist z.b. in meinem Fall absolut überflüssig..
Per Telnet schicken? Na ich weiß nicht ...
Ich hab auch keinen Schimmer von shell :o)
Und ein wenig von WSH
Und verflucht es hat auf diesem Planeten keiner AHnung von WMI außer den MS ScriptingGuys und die antworten nicht
Edit:
Das mit den Netzlaufwerkverbindungen ist z.b. in meinem Fall absolut überflüssig..
Per Telnet schicken? Na ich weiß nicht ...