Top-Themen

Aktuelle Themen (A bis Z)

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 BATCH Computernamen auslesen, aufteilen und nach Variablen wegschreiben...

Mitglied: yakazaa

yakazaa (Level 1) - Jetzt verbinden

28.03.2008, aktualisiert 15:40 Uhr, 6359 Aufrufe, 13 Kommentare

.... ist im Moment mein größtes Problem und ich hoffe auf eure Hilfe !!

Aber ich fang mal vorne an:

Bei uns bestehen die Rechnernamen aus diversen Kürzeln (zwischen 3 und 6 Großbuchstaben), einem Minus als Trennzeichen und dann Zahlen zwischen 1 und 100.

z.B. SVS-10

Jetzt soll mit einer BATCH Datei dieser Computername also ausgelesen werden und das "SVS" nach %Eingabe2% und die "10" nach %Eingabe4% gespeichert werden.

Wichtig ist hierbei das es in %Eingabe2% auch Großbuchstaben bleiben.
Später sollen dann diese in Kleinbuchstaben umgewandelt und nach %Eingabe3% abgelegt werden.
Allerdings muss %Eingabe2% weiterhin die Großbuchstaben behalten...

Hintergrund der ganzen Geschichte ist, dass so mit Snap Deploy beschossene Rechner automatisch diverse Windows Features geändert bekommen.
Diese Änderungen werden bei uns mit einer so genannten Client CD, einem ellenlangen DOS Skript, aufgerufen.
Dieses Skript verlangt jedoch die folgenden Eingaben:

Clientname in Großbuchstaben
Clientname in Kleinbuchstaben
Stationsnummer

Mit dem oben genannten Skript möchte ich nun gerne den Prozess des Finalisierens ohne Tastatureingaben realisieren...

Ich hoffe Ihr könnt mir da weiterhelfen !
Mitglied: miniversum
28.03.2008 um 09:51 Uhr
Versuchs mal so:
FOR /F "tokens=1,2 delims=-" %%i in ('echo %computername%') do set "Eingabe2=%%i" & set "Eingabe4=%%j"
Bitte warten ..
Mitglied: yakazaa
28.03.2008 um 09:52 Uhr
Ja wie jetzt ?!

Das gesamte Dingen lässt sich mit nem Einzeiler lösen ?!

Du bist n Held !!!
Bitte warten ..
Mitglied: miniversum
28.03.2008 um 09:56 Uhr
Die Zerlegung ja.
Wenn du die Kleinbuchstaben willst würde z.B. sowas noch zusätzlich funktionieren:
FOR /F "tokens=2 delims=- " %%i in ('ping -n 1 %computername%^|findstr /I "%computername%"') do set "Eingabe3=%%i"
Bitte warten ..
Mitglied: yakazaa
28.03.2008 um 10:07 Uhr
Hi,

hab das gerade mal versucht zu simulieren, allerdings stimmt da was mit der letzten Zeile nicht:

set Eingabe1=NEXT
FOR /F "tokens=1,2 delims=-" %%i in ('echo SVS-1') do set "Eingabe2=%%i" & set "Eingabe4=%%j"
FOR /F "tokens=2 delims=- " %%i in ('ping -n 1 SVS-1^|findstr /I "SVS-1"') do set "Eingabe3=%%i"

echo %Eingabe1%
echo %Eingabe2%
echo %Eingabe3%
echo %Eingabe4%

Er gibt für %Eingabe3% das Wort request aus....
Bitte warten ..
Mitglied: miniversum
28.03.2008 um 10:26 Uhr
In der CMD müßte das ganze ungefär so aussehen:
01.
>ping SVS-1
02.

03.
Ping svs-1 [192.168.2.2] mit 32 Bytes Daten:
04.

05.
Antwort von 192.168.2.2: Bytes=32 Zeit<1ms TTL=128
06.
Antwort von 192.168.2.2: Bytes=32 Zeit<1ms TTL=128
07.
Antwort von 192.168.2.2: Bytes=32 Zeit<1ms TTL=128
08.
Antwort von 192.168.2.2: Bytes=32 Zeit<1ms TTL=128
09.

10.
Ping-Statistik für 192.168.2.2:
11.
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
12.
Ca. Zeitangaben in Millisek.:
13.
    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
14.

15.
>
Durch den Ping befehl funktioniert das ganze NUR wenn der Rechner SVS-1 erreichbar ist!

Soll es auch sonst auch immer funktionieren must du es durch ersetzen von Buchstaben lösen.
Also:
set "Eingabe3=%Eingabe2:A=a%"
set "Eingabe3=%Eingabe3:B=b%"
set "Eingabe3=%Eingabe3:C=c%"
...
Bitte warten ..
Mitglied: yakazaa
28.03.2008 um 10:40 Uhr
Hm, wäre es denn dann nicht sinnvoller ipconfig zu nehmen und dann da den Computernamen raus zu ziehen ?!
DA steht er auch in Kleinbuchstaben und ist dann immer zu erreichen...

Aber wie müsste der Befehl dann aussehen ?!

Danke schonmal für deine Hilfe !
Bitte warten ..
Mitglied: miniversum
28.03.2008 um 11:09 Uhr
ob du ip config oder ping nimst ist egal. Wenn die Batch immer auf dem Rechner läuft mit diesem namen, also der name über %computername% übergeben werden kann, sollte es bei beiden funktionieren.
Mit ip config wäre es dann so:
FOR /F "tokens=15 delims=- " %%i in ('ipconfig /all^|findstr /I "%computername%"') do set "Eingabe3=%%i"
Bitte warten ..
Mitglied: yakazaa
28.03.2008 um 11:46 Uhr
Also, hab das jetzt in mein Skript eingebunden und die daten werden richtig aus dem Computernamen herausgefiltert.

Überprüfen tu ich den Krams mit

ECHO Projektname: %Eingabe1%
ECHO Clientname (groß): %Eingabe2%
ECHO Clientname (klein): %Eingabe3%
ECHO Stationsnummer : %Eingabe4%

Leider gibt er mir da den Clientnamen (klein) auch in Großbuchstaben an...
Bitte warten ..
Mitglied: yakazaa
28.03.2008 um 11:53 Uhr
Also:

Um euch mal das Gesamtskript zu zeigen:

01.
@echo off
02.
:start
03.

04.
set Eingabe1=JUNGHEINRICH
05.
REM set /p Eingabe2=Clientname(gross):
06.
REM set /p Eingabe3=Clientname(klein):
07.
REM set /p Eingabe4=Clientnummer:
08.
REM IF  "%Eingabe1%"=="" GOTO ERROR
09.
REM IF  "%Eingabe2%"=="" GOTO ERROR
10.
REM IF  "%Eingabe3%"=="" GOTO ERROR
11.
REM IF  "%Eingabe4%"=="" GOTO ERROR
12.

13.
FOR /F "tokens=1,2 delims=-" %%i in ('echo %computername%') do set "Eingabe2=%%i" & set "Eingabe4=%%j"
14.
FOR /F "tokens=15 delims=- " %%i in ('ipconfig /all^|findstr /I "%computername%"') do set "Eingabe3=%%i"
15.

16.
ECHO.
17.
ECHO.
18.
ECHO Folgende Rechnerinfos werden für die Ausführung der Client CD verwendet:
19.
ECHO.
20.
ECHO.
21.
ECHO Projektname: %Eingabe1%
22.
ECHO.
23.
ECHO Clientname (groß): %Eingabe2%
24.
ECHO.
25.
ECHO Clientname (klein): %Eingabe3%
26.
ECHO.
27.
ECHO Stationsnummer: %Eingabe4%
28.
ECHO.
29.
ECHO.
30.
ECHO Sollten diese Eingaben nicht korrekt sein drücken Sie bitte JETZT STRG + C um das Skript abzubrechen !!!
31.
PAUSE
32.
CLS
33.
rem ###################### DISKPART nach C:\SW kopieren ###########
34.
net use X: \\VI-CDS-SRV\Basics gambit /user:Administrator
35.
copy X:\*.txt C:\SW\
36.
copy X:\*.exe C:\SW\
37.
net use X: /delete
38.

39.
rem ###################### SIW nach C:\SW kopieren ###########
40.
MD C:\SW\SIW
41.
net use X: \\VI-CDS-SRV\Files\SIW gambit /user:Administrator
42.
copy X:\*.* C:\SW\SIW\
43.
net use X: /delete
44.

45.
rem ###################### CD-ROM nach Y: mappen ###########
46.
C:\SW\diskpart /s C:\SW\disk_Y.txt
47.

48.
rem ###################### Client CD ###########
49.
net use Z: \\VI-CDS-SRV\CLIENT_CD\%Eingabe1% gambit /user:Administrator
50.
CALL Z:\inst.bat %Eingabe1% %Eingabe2% %Eingabe3% %Eingabe4%
51.
net use Z: /delete
52.

53.
REM ###################### ORACLE Sprachänderung ###########
54.
net USE Z: \\srv.jag-test.ocal\Files gambit /user:jag-test.ocal\Administrator
55.
CALL Z:\JAG-Master\ORACLE.CMD
56.
net use Z: /delete
57.

58.
rem ###################### CD-ROM nach Z: mappen ###########
59.
C:\SW\diskpart /s C:\SW\disk_Z.txt
60.

61.
rem ###################### static IP setting und MAC Adressen Ausgabe#############################################
62.
SET COMPUTERNAME=%Eingabe2%-%Eingabe4%
63.
copy C:\Windows\system32\drivers\etc\hosts c:\SW\hosts.txt
64.
SET LOG=\\VI-CDS-SRV\MAC\%Eingabe1%\%COMPUTERNAME%.txt
65.
ECHO Daten des Rechners %COMPUTERNAME% >>%LOG%
66.
ipconfig /all >>%LOG%
67.
ECHO. >>%LOG%
68.
FOR /F "" %%I in ('findstr /i "%COMPUTERNAME%$" C:\SW\hosts.txt') DO Set IP=%%I
69.
ECHO NEXT Netzwerk: >>%LOG%
70.
ECHO         IP Adresse      . . . . . . . . . : %IP%  >>%LOG%
71.
ECHO.>>%LOG%
72.
DEL c:\SW\hosts.txt
73.

74.
rem ###################### LAN Verbindung umbenennen #############################################
75.
netsh interface set interface name = "Hostlan" newname = "HOSTLAN"
76.
netsh interface ip set address "HOSTLAN" static %IP% 255.255.255.0 172.27.72.254 1
77.

78.
rem ###################### Software Inventarisierung ###############################
79.
CALL C:\SW\SIW\SIW.EXE /log
80.

81.
rem ###################### Verknüpfung löschen ##############
82.
REM DEL "C:\Documents and Settings\Administrator\Desktop\Rechner individualisieren.lnk"
83.
goto Ende
84.

85.
rem ###################### Fehlerfall ##############
86.
:ERROR
87.
REM ECHO.
88.
REM ECHO.
89.
REM ECHO Uebergabeparameter fehlt !!
90.
REM ECHO.
91.
REM ECHO Syntax: INST Projektname(gross) Clientname(gross) Clientname(klein) Client-Nr.
92.
REM ECHO.
93.
ECHO Fehlerfall: 
94.
ECHO.
95.
ECHO Zur Fehlersuche bitte folgendes angeben:
96.
ECHO.
97.
ECHO Parameter:
98.
ECHO.
99.
ECHO Projektname: %Eingabe1%
100.
ECHO.
101.
ECHO Clientname (groß): %Eingabe2%
102.
ECHO.
103.
ECHO Clientname (klein): %Eingabe3%
104.
ECHO.
105.
ECHO Stationsnummer: %Eingabe4%
106.
ECHO.
107.
PAUSE
108.
goto start
109.
:ende
Vielleicht hebelt sich da irgendwas gegenseitig aus ?!

bedankt,

Dominink
Bitte warten ..
Mitglied: miniversum
28.03.2008 um 12:22 Uhr
Ich habe grade dein Skript (nur die Obere hälfte bis zur Pause) bei mir grade genau so getestet. Da mein Computername hier auch ein - enthält und alles grosbuchstaben sind war also keine weitere Änderung notwendig.
Hier bei mir funktioniert es wie gewollt. Da wos großbuchstaben sein sollen sind sie groß udn da wo sie klein sein sollen werden sie klein angezeigt.

Ich hab hier ein Windows xp pro.

Hast du es mal mit der ersetzen Mathode versucht?
Bitte warten ..
Mitglied: bastla
28.03.2008 um 14:38 Uhr
Hallo yakayzaa!

Falls (temporäres) VBScript eine Option wäre, könntest Du es mit folgendem Batch versuchen:
01.
@echo off & setlocal
02.
set G=%temp%\GetNameParts.vbs
03.
echo N=Split(WScript.CreateObject("WScript.Network").ComputerName,"-"):WScript.Echo N(0)^&" "^&LCase(N(0))^&" "^&N(1)>%G%
04.
for /f "tokens=1-3" %%i in ('cscript //nologo %G%') do set "Eingabe2=%%i" & set "Eingabe3=%%j" & "set Eingabe4=%%k"
05.
echo %Eingabe2%
06.
echo %Eingabe3%
07.
echo %Eingabe4%
Grüße
bastla
Bitte warten ..
Mitglied: yakazaa
28.03.2008 um 15:24 Uhr
So, muss vorne anfangen:

Hab das Problem schon kommen sehen und das Ganze mal bei Gulli gepostet.

Aus der Antwort von da ahb ich mir dann irgendwann ein Konstrukt gebaut, das wie folgt aussieht.. und seinen Dienst tut ;)

Sieht so aus:

01.
FOR /F "tokens=1,2 delims=-" %%i in ('echo %computername%') do set "Eingabe2=%%i" & set "Eingabe4=%%j"
02.
FOR /F "tokens=15 delims=- " %%i in ('ipconfig /all^|findstr /I "%computername%"') do set "Eingabe3=%%i"
03.

04.
set Eingabe3=%Eingabe3:A=a%
05.
set Eingabe3=%Eingabe3:B=b%
06.
set Eingabe3=%Eingabe3:C=c%
07.
set Eingabe3=%Eingabe3:D=d%
08.
set Eingabe3=%Eingabe3:E=e%
09.
set Eingabe3=%Eingabe3:F=f%
10.
set Eingabe3=%Eingabe3:G=g%
11.
set Eingabe3=%Eingabe3:H=h%
12.
set Eingabe3=%Eingabe3:I=i%
13.
set Eingabe3=%Eingabe3:J=j%
14.
set Eingabe3=%Eingabe3:K=k%
15.
set Eingabe3=%Eingabe3:L=l%
16.
set Eingabe3=%Eingabe3:M=m%
17.
set Eingabe3=%Eingabe3:N=n%
18.
set Eingabe3=%Eingabe3:O=o%
19.
set Eingabe3=%Eingabe3:P=p%
20.
set Eingabe3=%Eingabe3:Q=q%
21.
set Eingabe3=%Eingabe3:R=r%
22.
set Eingabe3=%Eingabe3:S=s%
23.
set Eingabe3=%Eingabe3:T=t%
24.
set Eingabe3=%Eingabe3:U=u%
25.
set Eingabe3=%Eingabe3:V=v%
26.
set Eingabe3=%Eingabe3:W=w%
27.
set Eingabe3=%Eingabe3:X=x%
28.
set Eingabe3=%Eingabe3:Y=y%
29.
set Eingabe3=%Eingabe3:Z=z%
30.

31.
ECHO.
32.
ECHO.
33.
ECHO Folgende Rechnerinfos werden fr die Ausfhrung der Client CD verwendet:
34.
ECHO.
35.
ECHO Projektname: %Eingabe1%
36.
ECHO Clientname (groá): %Eingabe2%
37.
ECHO Clientname (klein): %Eingabe3%
38.
ECHO Stationsnummer: %Eingabe4%
39.
ECHO.
40.
ECHO.
41.
ECHO Sollten diese Eingaben nicht korrekt sein drcken Sie bitte JETZT
42.
ECHO STRG + C um das Skript abzubrechen !!!
43.
ECHO.
44.
ECHO.
45.
PAUSE
46.
CLS
So klappt das Ganze dann auch Perfekt...

Vielen Dank für euren Support, speziell natürlich an dich miniversum !
Das Hauptthreadpronlem hattest du ja in 0,nix gelöst !!!

@bastla: ein VB Script soll ich (warum auch immer) nicht verwenden...
Anweisungen...


Schönes Wochenende euch allen und nochmals 1000 Dank !!!

Dominik
Bitte warten ..
Mitglied: miniversum
28.03.2008 um 15:40 Uhr
Dann brauchst du die zweite Zeile mit dem For aber nicht mehr und köntest davür
set Eingabe3=%Eingabe3:A=a%
in
set Eingabe3=%Eingabe2:A=a%
abändern.
Die restlichen aber so lassen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Batch in batch in cfg schreiben
gelöst Frage von pixelBfBatch & Shell2 Kommentare

Hayy, ich bin neu hier im forum:)) Meine frage: Kann ich eine batch schreiben die was in eine batch ...

Batch & Shell
Batch - Kopierjob
Frage von Goldenone95Batch & Shell8 Kommentare

Hallo Community, leider weiß ich bezüglich einer Batch-Datei zum Kopieren und Ersetzen einer Datei in einem anderen Verzeichnis nicht ...

Batch & Shell
Batch - Variablen
gelöst Frage von Marlon1Batch & Shell2 Kommentare

Hallo, Ich habe eine Frage zu Variablen. Und zwar ob es irgendwie geht das Batch mit ein IF Befehl ...

Batch & Shell
Kopfschmerzen (Batch)
gelöst Frage von clragonBatch & Shell4 Kommentare

"" " Kann syntaktisch an dieser Stelle nicht verarbeitet werden Ich sterbe während die Flammen meiner Rage mich innerlich ...

Neue Wissensbeiträge
Windows 10

Windows 10 kann XPS erzeugen aber nicht anzeigen ????

Erfahrungsbericht von Deepsys vor 1 TagWindows 101 Kommentar

Heute schickt mir ein Kollegen eine E-Mail mit einer XPS-Datei vom Kunden im Anhang und fragt wie er diese ...

Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 1 TagExchange Server3 Kommentare

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 2 TagenLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 3 TagenWindows Mobile1 Kommentar

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Wo lässt sich das Gateway in der FRITZ!Box 7360 einstellen?
gelöst Frage von OssabowLAN, WAN, Wireless18 Kommentare

Hallo all, nach gründlicher Suche scheine ich der einzige zu sein der das Problem hat (macht micht schon mal ...

Windows Server
Sicherung Domain Controller
gelöst Frage von Monto1Windows Server16 Kommentare

Hallo zusammen, wie sichert Ihr den Domain Controller? Selbst, wenn zwei parallel laufen, ist eine Sicherung doch mal nützlich. ...

Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server15 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...

Microsoft Office
Office 2016 oder Office 2019
Frage von PeterzMicrosoft Office13 Kommentare

Hallo zusammen, wir müssen unser Office von 2010 auf eine neuere Version Umstellen. Jetzt stellt sich die Frage, ob ...