Hilfe beim Batch Skript
Hallo zusammen,
ich möchte gerne ein Skript schreiben das folgendes macht:
Wenn WindowsBuildNumber 10.0.10586 oder 10.0.14393 enthält, dann führe \\server-ip\pfad\setup.exe aus
und sende ein LOG namens %computername%.log nach \\IP\Pfad.
Ansonsten mache nichts und sende ein Log nach \\IP\Pfad.
Wäre super wenn ich dafür eine Lösung hätte.
Danke
Lg
ich möchte gerne ein Skript schreiben das folgendes macht:
Wenn WindowsBuildNumber 10.0.10586 oder 10.0.14393 enthält, dann führe \\server-ip\pfad\setup.exe aus
und sende ein LOG namens %computername%.log nach \\IP\Pfad.
Ansonsten mache nichts und sende ein Log nach \\IP\Pfad.
Wäre super wenn ich dafür eine Lösung hätte.
Danke
Lg
Please also mark the comments that contributed to the solution of the article
Content-Key: 339848
Url: https://administrator.de/contentid/339848
Printed on: April 23, 2024 at 15:04 o'clock
13 Comments
Latest comment
Moin,
help in der Konsole (Eingabeauffforderung) aufgerufen zeigt dir eine Liste aller verfügbaren Befehle, die man in Batch benutzen kann. Zu jedem Befehl gibt es mit befehl /? eine ausführliche Beschreibung, was der Befehl kann und macht.
Beispiel: for /?
Gruß
help in der Konsole (Eingabeauffforderung) aufgerufen zeigt dir eine Liste aller verfügbaren Befehle, die man in Batch benutzen kann. Zu jedem Befehl gibt es mit befehl /? eine ausführliche Beschreibung, was der Befehl kann und macht.
Beispiel: for /?
Gruß
Hi,
da liest du falsch. Lies das doch mal so:
Eigeninitiative ist der erste Weg. Und wenn du dann auch noch in Codetags deine angefangene Lösung präsentierst und nicht weiterkommst, wirst du sicher auch Hilfe finden.
So jedenfalls nicht.
Gruß
da liest du falsch. Lies das doch mal so:
Eigeninitiative ist der erste Weg. Und wenn du dann auch noch in Codetags deine angefangene Lösung präsentierst und nicht weiterkommst, wirst du sicher auch Hilfe finden.
So jedenfalls nicht.
Gruß
was soll der Quatsch mit systeminfo? Dauert doch viel zu lange!
Dann hast du in deinem Code übersehen, dass du zwei Prüfungen brauchst.
Einfache Lösung: Hilfsvariable
Setze am Anfang deines Codes eine Variable und setzte die auf einen Wert - von mir aus auf false
Jetzt machst du deine Prüfungen auf Versionsnummer: Variable auf true setzen
Jetzt prüfst du ob deine Variable true ist und führst deinen Code aus.
Fertig
wmic os get Version | findstr "10\.0\.10586 10\.0\.14393" >nul 2>&1 && (
echo Build numbers matching, do something
) || (
REM DO something else
)
Ich möchte ein Skript schreiben (um dies nachher per GPO als einmaligen Windows Task zu verteilen) schreiben,
Dann tu das doch ?!Gruß
[OT]
ich habe mal eine entbehrliche Dialog-Sequenz in einem ebenfalls verirrten und entbehrlichen Beitrag in einem abgelegenen Seitenarm dieses Forums ausgeblendet.
@114685/@BibersBaum
Es steht zu erwarten, dass ihr beide euch noch ein paarmal in irgendwelchen Beiträgen begegnet.
Nichts spricht dagegen, dem jeweils anderen die eigene Sicht der Dinge näherbringen zu wollen - auch mit Augenzwinkern und Ironie.
Da aber die Wahrscheinlichkeit, der andere könne mit einem "Ja klar, da hast du auch Recht. Danke für den Hinweis!" antworten wesentlich geringer ist als der eines Erdrutschsieges der SPD bei der nächsten Wahl:
BITTE vermeidet unnötige Eskalationen, verbalen Schlagabtausch und erst recht Beleidigungen.
Ihr beide könnt euch vielleicht auf dieser Ebene noch durchaus souverän bewegen - aber mir graut vor den potentiellen Nachahmern, die dann auch versuchen könnten, kleine Spitzen zu formulieren.
Ist nur eine Bitte, und die erhoffte Reaktion ist NICHT ein Abmelden/Löschen des Accounts.
Grüße
Biber
[/OT]
ich habe mal eine entbehrliche Dialog-Sequenz in einem ebenfalls verirrten und entbehrlichen Beitrag in einem abgelegenen Seitenarm dieses Forums ausgeblendet.
@114685/@BibersBaum
Es steht zu erwarten, dass ihr beide euch noch ein paarmal in irgendwelchen Beiträgen begegnet.
Nichts spricht dagegen, dem jeweils anderen die eigene Sicht der Dinge näherbringen zu wollen - auch mit Augenzwinkern und Ironie.
Da aber die Wahrscheinlichkeit, der andere könne mit einem "Ja klar, da hast du auch Recht. Danke für den Hinweis!" antworten wesentlich geringer ist als der eines Erdrutschsieges der SPD bei der nächsten Wahl:
BITTE vermeidet unnötige Eskalationen, verbalen Schlagabtausch und erst recht Beleidigungen.
Ihr beide könnt euch vielleicht auf dieser Ebene noch durchaus souverän bewegen - aber mir graut vor den potentiellen Nachahmern, die dann auch versuchen könnten, kleine Spitzen zu formulieren.
Ist nur eine Bitte, und die erhoffte Reaktion ist NICHT ein Abmelden/Löschen des Accounts.
Grüße
Biber
[/OT]
Danke! Diese nicht von mir provozierte Offtopic-Geplänkel hat hier ja auch nichts zu suchen.
Hallo,
auch wenn das hier gerade nicht gefragt war, wie kommt man denn ans "Kleingedruckte"?
10.0.15063.332
Eine vollständige Versionbezeichnung sieht doch beispielsweise so aus:
Windows 10 Pro, 1703 (10.0.15063.332)
Ich finde allerdings keinen Befehl, der die "332" als Text ausgibt und winver ist nicht gerade skripttauglich.
In der Registry stehen alle Werte drin:
Die "332" kann ich dort auch auslesen
Geht's echt nur über reg und dann (wie auch immer) hex in dez wandeln?
Gruß Frank
auch wenn das hier gerade nicht gefragt war, wie kommt man denn ans "Kleingedruckte"?
10.0.15063.332
C:\>wmic os get Version
Version
10.0.15063
Version
10.0.15063
C:\>ver
Microsoft Windows [Version 10.0.15063]
Microsoft Windows [Version 10.0.15063]
C:\>systeminfo
Betriebssystemname: Microsoft Windows 10 Pro
Betriebssystemversion: 10.0.15063 Nicht zutreffend Build 15063
Betriebssystemname: Microsoft Windows 10 Pro
Betriebssystemversion: 10.0.15063 Nicht zutreffend Build 15063
PS C:\> Get-CimInstance Win32_OperatingSystem -Property *
Caption : Microsoft Windows 10 Pro
Version : 10.0.15063
Caption : Microsoft Windows 10 Pro
Version : 10.0.15063
PS C:\> (Get-WmiObject win32_operatingsystem).caption
Microsoft Windows 10 Pro
PS C:\> (Get-WmiObject win32_operatingsystem).version
10.0.15063
Microsoft Windows 10 Pro
PS C:\> (Get-WmiObject win32_operatingsystem).version
10.0.15063
Eine vollständige Versionbezeichnung sieht doch beispielsweise so aus:
Windows 10 Pro, 1703 (10.0.15063.332)
Ich finde allerdings keinen Befehl, der die "332" als Text ausgibt und winver ist nicht gerade skripttauglich.
In der Registry stehen alle Werte drin:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"CurrentVersion"="6.3"
"EditionID"="Professional"
"ProductName"="Windows 10 Pro"
"ReleaseId"="1703"
"CompositionEditionID"="Professional"
"CurrentBuild"="15063"
"CurrentBuildNumber"="15063"
"CurrentMajorVersionNumber"=dword:0000000a
"CurrentMinorVersionNumber"=dword:00000000
"UBR"=dword:0000014c
"CurrentVersion"="6.3"
"EditionID"="Professional"
"ProductName"="Windows 10 Pro"
"ReleaseId"="1703"
"CompositionEditionID"="Professional"
"CurrentBuild"="15063"
"CurrentBuildNumber"="15063"
"CurrentMajorVersionNumber"=dword:0000000a
"CurrentMinorVersionNumber"=dword:00000000
"UBR"=dword:0000014c
Die "332" kann ich dort auch auslesen
C:\>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
UBR REG_DWORD 0x14c
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
UBR REG_DWORD 0x14c
0xc14 = 332
Geht's echt nur über reg und dann (wie auch immer) hex in dez wandeln?
if "%hex%" == "0x000" set dez=0 & if "%hex%" == "0x001" set dez=1 & ... & if "%hex%" == "0xfff" set dez=4095
Gruß Frank
Hi,
Nö, zumindest was die Umwandlung angeht, geht's einfacher mit
Gruß
Nö, zumindest was die Umwandlung angeht, geht's einfacher mit
set/a "h2d=0x14c"
Gruß
Hallo,
Mein Umwandlungs-"Vorschlag" war nicht wiklich ernst gemeint, aber auf set bin ich nicht gekommen.
Zusammen mit den anderen Kommentaren ergibt das eine vollständige Versionsauslesung.
win10version.cmd
Output
@WinLiCLI
Bist Du mit Deinem Testskript jetzt fertig oder wo hängt's?
Gruß Frank
PS: Ich hab die CMD nochmal überarbeitet/ergänzt.
PPS: Zeile 41 gefällt mir besonders gut.
Zitat von @114685:
...zumindest was die Umwandlung angeht, geht's einfacher mit
Danke hugonatter....zumindest was die Umwandlung angeht, geht's einfacher mit
set/a "h2d=0x14c"
Mein Umwandlungs-"Vorschlag" war nicht wiklich ernst gemeint, aber auf set bin ich nicht gekommen.
Zusammen mit den anderen Kommentaren ergibt das eine vollständige Versionsauslesung.
win10version.cmd
@echo off
:: Product
for /f "tokens=1,2,*" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName') do (
set ProductName=%%k
)
::Release
for /f "tokens=1,2,*" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId') do (
set Release=%%k
)
:: Build
for /f "tokens=4-6 delims=.] " %%i in ('ver') do (
set MajorVersion=%%i
set MinorVersion=%%j
set Build=%%k
)
for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR') do (
set /a UpdateBuildRevision=%%i
)
set BuildComplete=%MajorVersion%.%MinorVersion%.%Build%.%UpdateBuildRevision%
:: Architecture
for /f %%i in ('wmic os get OSArchitecture ^| find "bit"') do (
set Architecture=%%i
)
:: UI-Language
for /f "tokens=3" %%i in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sLanguage') do (
set UILanguage=%%i
)
:: OS-Language
for /f %%i in ('wmic os get OSLanguage') do (
REM https://www.autoitscript.com/autoit3/docs/appendix/OSLangCodes.htm
if "%%i" == "1031" set OSLanguage=deu.
if "%%i" == "1033" set OSLanguage=eng.
)
REM oder
for /f "tokens=3" %%i in ('powershell [CultureInfo]::InstalledUICulture') do (
set OSLanguage=%%i
)
set OSLanguage=%OSLanguage:~0,3%.
:: Output
REM goto output2
:output1
echo(
echo ProductName : %ProductName%
echo Release : %Release%
echo MajorVersion : %MajorVersion%
echo MinorVersion : %MinorVersion%
echo Build : %Build%
echo UpdateBuildRevision: %UpdateBuildRevision%
echo BuildComplete : %BuildComplete%
echo Architecture : %Architecture%
echo UILanguage : %UILanguage%
echo OSLanguage : %OSLanguage%
echo(
:output2
echo %ProductName% %Architecture% ^(%OSLanguage%/%UILanguage%^), %Release% ^(%BuildComplete%^)
Output
ProductName : Windows 10 Pro
Release : 1703
MajorVersion : 10
MinorVersion : 0
Build : 15063
UpdateBuildRevision: 332
BuildComplete : 10.0.15063.332
Architecture : 64-bit
UILanguage : DEU
OSLanguage : Eng.
Windows 10 Pro 64-bit (Eng./DEU), 1703 (10.0.15063.332)
@WinLiCLI
Bist Du mit Deinem Testskript jetzt fertig oder wo hängt's?
Gruß Frank
PS: Ich hab die CMD nochmal überarbeitet/ergänzt.
PPS: Zeile 41 gefällt mir besonders gut.