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 Variable aus zwei anderen erzeugen - Script optimierung

Mitglied: Nagus

Nagus (Level 2) - Jetzt verbinden

20.01.2012 um 07:53 Uhr, 2757 Aufrufe, 13 Kommentare

Moin,

da ich derzeit ein wenig auf dem Schlauch stehe und trotz suche nicht die passende Lösung gefunden habe, wäre ich für ein bisschen Hilfe sehr dankbar ....

Das Script soll zwei Dateien auf verschiedenen PCs verteilen. Da die Namens Auflösung derzeit noch nicht geht muss ich über die IPs gehen, sonst wäre es noch einmal einfacher. Ich habe das ganze noch ein wenig gekürzt, als Platzhalter die ...

Zwei Fragen habe ich:
1. Beim Verbinden des laufwerkes wollte ich die Variable standortXX bauen wobei das xx jeweils aus einer anderen Variablen kommt. Klappt nicht, egal in welcher Variante. Ich vermute hier benötige ich eine andere Schreibweise, habe aber einfach nix passendes gefunden ...

2. Das Script hat sicherlich noch Optimierungsmöglichkeiten, da ich einfach zu doof bin, die "richtigen" for schleifen zu basteln ist immer schief gegangen - schnief
Gruß
Nagus


01.
rem @echo off 
02.
Title Verteilungsscript 
03.
color 1F 
04.
setlocal enabledelayedexpansion 
05.
 
06.
set "standort10=192.168.110.149" 
07.
set "standort12=192.168.112.149" 
08.
... 
09.
set "standort23=192.168.124.149" 
10.
 
11.
set "id=xxxx" 
12.
set "pass=yyyy" 
13.
set "para=/persistent:no" 
14.
set "pfad=c:\verzeichnis\daten" 
15.
REM Starte Log-Datei 
16.
echo blabla >%pfad%\CopyJob.log 
17.
echo.>>%pfad%\CopyJob.log 
18.
echo -------------------------------------------------->>%pfad%\CopyJob.log 
19.
echo Start am: %date:~0,12%>>%pfad%CopyJob.log 
20.
echo Start um: %time:~0,8%>>%pfad%CopyJob.log 
21.
echo -------------------------------------------------->>%pfad%\CopyJob.log 
22.
 
23.
net use t: /d /y >nul 
24.
@echo on 
25.
 
26.
:10 
27.
set "einr=10" 
28.
set "return=12" 
29.
goto verbinde 
30.
 
31.
:12 
32.
set "einr=12" 
33.
set "return=14" 
34.
goto verbinde 
35.
 
36.
... 
37.
 
38.
:23 
39.
set "einr=23" 
40.
set "return=ende" 
41.
goto verbinde 
42.
 
43.
:verbinde 
44.
net use t: \\standort%einr%\freigabe$ /user:%id% %pass% %para% 
45.
if %errorlevel% NEQ 0 goto Fehler 
46.
goto kopiere 
47.
 
48.
:Fehler 
49.
echo --> standort%einr%>>%pfad%CopyJob.log 
50.
echo Es ist ein Fehler beim verbinden des Laufwerks fuer standort%einr% augetreten>>%pfad%\CopyJob.log 
51.
echo.>>%pfad%\CopyJob.log 
52.
goto %return% 
53.
 
54.
:kopiere 
55.
echo --< standort%haus%>>%pfad%\CopyJob.log 
56.
copy %pfad%\standort%einr%\Datei1.TXT t:\ /v >>%pfad%\CopyJob.log 
57.
copy %pfad%\standort%einr%\Datei2.txt t:\ /v>>%pfad%\CopyJob.log 
58.
 
59.
:trenne 
60.
net use t: /d /y 
61.
goto %return% 
62.
 
63.
:ende 
64.
%pfad%\bmail.exe -s 192.168.101.23 -p 25 -t xxx.xxx@yyyy.de -f absender@yyyyy.de -a Betreff -m %pfad%\CopyJob.log
Mitglied: icsat
20.01.2012 um 08:23 Uhr
Hallo Nagus,

auf die schnelle und ungetestet folgender Vorschlag:

Zeile 43,5:
01.
set "ziel=standort%einr%"
und Zeile 44:
01.
net use t: \\%ziel%\freigabe$ /user:%id% %pass% %para% 

Gruß icsAT
Bitte warten ..
Mitglied: hajowe
20.01.2012 um 08:29 Uhr
nimme die " noch weg dann sollte es gehen
Hier ein kleiner Test
mit ein paar definitionen. Speicher es unter test und führe es aus dann siehst du das die Set Variablen zusammengesetzt sind
Echo On
set Teil1=123
set Teil2=456
set teil3= %Teil1%%Teil2%
set einr=5
set ziel=standort%einr%
Bitte warten ..
Mitglied: Logan000
20.01.2012 um 08:34 Uhr
Moin Moin

Plan B:
Da deine Stadort IP ja einem Schema folgen ..
01.
set "standort10=192.168.110.149" 
02.
set "standort12=192.168.112.149" 
03.
... 
04.
set "standort23=192.168.124.149"
könntest du doch beim Verbinden so vorgehen:
01.
... 
02.
:verbinde 
03.
net use t: \\192.168.1%einr%.149\freigabe$ /user:%id% %pass% %para% 
04.
if %errorlevel% NEQ 0 goto Fehler 
05.
goto kopiere 
06.
...
und natürlich analog beim kopieren.

Gruß L.
Bitte warten ..
Mitglied: Nagus
20.01.2012 um 09:18 Uhr
Erstmal Danke - muss das jetzt "verarbeiten" melde mich dann aber wieder ...

schei... multitasking auf der Arbeit ...

Gruß
Nagus
Bitte warten ..
Mitglied: icsat
20.01.2012 um 09:42 Uhr
Moin hajowe,

kannst Du kurz erklären, warum die " weg sollen? Mir ist das jetzt nicht ganz klar. Das Ergebnis sollte im Normalfall unabhängig von den " identisch sein.

Bei Deinem teil3 hat sich hinter dem = ein SPACE eingeschlichen.


Gruß icsAT
Bitte warten ..
Mitglied: Nagus
20.01.2012 um 09:47 Uhr
Zitat von hajowe:
nimme die " noch weg dann sollte es gehen
Hier ein kleiner Test
mit ein paar definitionen. Speicher es unter test und führe es aus dann siehst du das die Set Variablen zusammengesetzt sind
Echo On
set Teil1=123
set Teil2=456
set teil3= %Teil1%%Teil2%
set einr=5
set ziel=standort%einr%



Okay das funktioniert nicht weil ich ja die IP haben möchte:

01.
set "standort10=192.168.110.149" 
02.
 
03.
set "einr=10"  
04.
 
05.
net use t: \\standort%einr%\freigabe$ /user:%id% %pass% %para% 
als Ergebnis möchte ich im Script
01.
net use t: \\192.168.110.149\freigabe$ /user:%id% %pass% %para% 
stehen haben ...

oder denke ich gerade falsch ... -.-
Bitte warten ..
Mitglied: icsat
20.01.2012 um 09:54 Uhr
Hallo Logan000,

das funktioniert für 10 und 12 in diesem Beispiel aber nicht für Standort 23, weil dort in der IP ne 24 erwartet wird.
Ich würde ohnehin Liste (Datei) mit allen IP-Adressen bereitstellen und diese per for abarbeiten.

Gruß icsAT
Bitte warten ..
Mitglied: Logan000
20.01.2012 um 10:04 Uhr
Moin

Zitat von icsat:
das funktioniert für 10 und 12 in diesem Beispiel aber nicht für Standort 23, weil dort in der IP ne 24 erwartet wird.
Ich würde ohnehin Liste (Datei) mit allen IP-Adressen bereitstellen und diese per for abarbeiten.

Gut aufgepasst.
Die Variable einr wäre dann keine Standort bezeichnung mehr sondern nur ein IP fragment und die deklarionen müssten entsprechend angepasst werden.
(falls das kein Tippfehler war.)

Gruß L.
Bitte warten ..
Mitglied: bastla
20.01.2012 um 13:24 Uhr
Hallo @All!

Vielleicht als Anhaltspunkt für eine mögliche Lösung:
01.
@echo off & setlocal 
02.
set "Prefix=standort" 
03.
set "standort10=192.168.110.149" 
04.
set "standort12=192.168.112.149" 
05.
 
06.
set "Nr=10" 
07.
call set "IP=%%%Prefix%%Nr%%%" 
08.
echo %IP%
Alternative: "delayedExpansion"

Grüße
bastla
Bitte warten ..
Mitglied: Nagus
20.01.2012 um 13:32 Uhr
Moin hajowe,

das löst leider nicht mein Problem!

ich möchte ja:

set Teil1=192.168.110.100
set Teil2=1

net use t: \\Teil%Teil2% ....

Die Variable Teil1 soll zur Laufzeit aus einer anderen zusammengebaut werden. Sorry kann das nicht besser erklären ....
Bitte warten ..
Mitglied: Nagus
20.01.2012 um 15:45 Uhr
Bastler - ich danke Dir!

Das war es!!!

Allerdings kapiere ich noch nicht warum der Call Befehl notwendig ist ...
:-?
01.
setlocal enabledelayedexpansion 
habe ich ja gesetzt. geht es dann auch mit

01.
set "IP=%%%Prefix%%NR%%%"
Und warum die drei Prozent Zeichen?

Wäre nett wenn Du mich noch aufklären würdest nur in Bezug auf meine Fragen oben, über den Rest weiß ich soweit bescheid
Bitte warten ..
Mitglied: bastla
20.01.2012 um 16:52 Uhr
Hallo Nagus!

Wenn Du "delayedExpansion" verwendest, dann so:
set "IP=!%Prefix%%Nr%!"
Sinn der Aktion ist es, in einem ersten Schritt, %Prefix% und %Nr% zum Ergebnis "standort10" umzuwandeln und danach (= "verzögert") dieses Ergebnis als Variablennamen aufzulösen - genau das macht auch die "call"-Variante, mit dem Unterschied, dass hier eine weitere CMD-Instanz aufgerufen wird, in welcher zunächst die Variablen mit dem einen Prozentzeichen aufgelöst werden, wobei auch aus den weiteren 2 Prozentzeichen "außen herum" jeweils nur eines gemacht wird, sodass danach das Ergebnis von %standort10% zurückgegeben werden kann; schrittweise sieht das also so aus:
Aufruf:                    %%%Prefix%%Nr%%% 
zweite Instanz:            %%standort10%% 
zurück an erste Instanz:   %standort10% 
Auflösung:                 192.168.110.149
Grüße
bastla
Bitte warten ..
Mitglied: Nagus
22.01.2012 um 12:58 Uhr
Okay, daran muss ich noch ein wenig "knabbern" und das in meinem Alter

Script rennt und wird jetzt noch optimiert: email Benachrichtigung (rennt), Datei Vergleich (in Arbeit).

Danke für die Hilfe! Wenn's dann mal fertig ist, werde ich es posten. Viellicht hilft es ja noch anderen ..

Gruß Nagus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Backup Script Optimierung und MSSQL
Frage von TommyB83Batch & Shell4 Kommentare

Hiho :) Ich hätt da mal 'ne Frage. Scenario ist wie folgt: Windows Server 2012 R2 mit IIS und ...

Batch & Shell

Batch Variable erzeugen mit Leerzeichen und Klammern

gelöst Frage von hipfzwirgelBatch & Shell11 Kommentare

Hallo an Alle, ich habe eine lösbare Aufgabe und finde die richtige Schreibweise nicht. Ich muss eine Variable in ...

Batch & Shell

Bash Script soll neue Datei erzeugen

Frage von SpeakerSTBatch & Shell2 Kommentare

Hallo zusammen, ich benötige mal euren Rat. Ich möchte in einem Script Parameter eingeben die darauf hin einen Text ...

Batch & Shell

Auswahl zweier Variablen zu einer zusammenführen

Frage von complexBatch & Shell5 Kommentare

Moin miteinander, und wieder eine Frage bezüglich Powershell: Ich habe das Problem, dass ich gerade an einem script arbeite, ...

Neue Wissensbeiträge
Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 31 MinutenAdministrator.de Feedback4 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 17 StundenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...