Variable aus zwei anderen erzeugen - Script optimierung
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
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
rem @echo off
Title Verteilungsscript
color 1F
setlocal enabledelayedexpansion
set "standort10=192.168.110.149"
set "standort12=192.168.112.149"
...
set "standort23=192.168.124.149"
set "id=xxxx"
set "pass=yyyy"
set "para=/persistent:no"
set "pfad=c:\verzeichnis\daten"
REM Starte Log-Datei
echo blabla >%pfad%\CopyJob.log
echo.>>%pfad%\CopyJob.log
echo -------------------------------------------------->>%pfad%\CopyJob.log
echo Start am: %date:~0,12%>>%pfad%CopyJob.log
echo Start um: %time:~0,8%>>%pfad%CopyJob.log
echo -------------------------------------------------->>%pfad%\CopyJob.log
net use t: /d /y >nul
@echo on
:10
set "einr=10"
set {{comment_strings:12397235596}}
goto verbinde
:12
set "einr=12"
set {{comment_strings:23233852265}}
goto verbinde
...
:23
set "einr=23"
set "return=ende"
goto verbinde
:verbinde
net use t: \\standort%einr%\freigabe$ /user:%id% %pass% %para%
if %errorlevel% NEQ 0 goto Fehler
goto kopiere
:Fehler
echo --> standort%einr%>>%pfad%CopyJob.log
echo Es ist ein Fehler beim verbinden des Laufwerks fuer standort%einr% augetreten>>%pfad%\CopyJob.log
echo.>>%pfad%\CopyJob.log
goto %return%
:kopiere
echo --< standort%haus%>>%pfad%\CopyJob.log
copy %pfad%\standort%einr%\Datei1.TXT t:\ /v >>%pfad%\CopyJob.log
copy %pfad%\standort%einr%\Datei2.txt t:\ /v>>%pfad%\CopyJob.log
:trenne
net use t: /d /y
goto %return%
:ende
%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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 179220
Url: https://administrator.de/forum/variable-aus-zwei-anderen-erzeugen-script-optimierung-179220.html
Ausgedruckt am: 16.02.2025 um 22:02 Uhr
13 Kommentare
Neuester Kommentar
Moin Moin
Plan B:
Da deine Stadort IP ja einem Schema folgen ..
könntest du doch beim Verbinden so vorgehen:
und natürlich analog beim kopieren.
Gruß L.
Plan B:
Da deine Stadort IP ja einem Schema folgen ..
set "standort10=192.168.110.149"
set "standort12=192.168.112.149"
...
set "standort23=192.168.124.149"
...
:verbinde
net use t: \\192.168.1%einr%.149\freigabe$ /user:%id% %pass% %para%
if %errorlevel% NEQ 0 goto Fehler
goto kopiere
...
Gruß L.
Moin
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.
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.
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.
Hallo Nagus!
Wenn Du "
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 "
Grüße
bastla
Wenn Du "
delayedExpansion
" verwendest, dann so:set "IP=!%Prefix%%Nr%!"
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
bastla