pixel0815
Goto Top

Batch Skript läuft merkwürdig.

Hallo zusammen,
ich habe ein komisches Phänomen.

Dieses unten stehende Skript läuft in einer Citrix Umgebung

Dies dient dazu um die korrekte URL aufzurufen in einer Citrix Umgebung.

Dort soll nicht der Servername stehen sondern der CLIENTNAME

http://servername//login.php?host^=%PC%

Soweit so gut.

Wenn ich start %url% aufrufe ist der Link korrekt.
Wenn ich start iexplore %url% aufrufe hat die Variable den wert NB000 IF NB000 EQU Console set PC=SERVER1 und nicht wie vorher NB000
Was läuft da schief?

setlocal enabledelayedexpansion
set Clientname
IF %ERRORLEVEL% NEQ 1 goto Citrix
set PC=%COMPUTERNAME%
goto aufruf
:Citrix
IF %CLIENTNAME% NEQ Console set PC=%Clientname% IF %CLIENTNAME% EQU Console set PC=%COMPUTERNAME%
:aufruf
set URL=http://servername//login.php?host^=%PC%
start iexplore %URL%

Gruß
Pixel

Content-Key: 304214

Url: https://administrator.de/contentid/304214

Printed on: April 26, 2024 at 07:04 o'clock

Member: holli.zimmi
holli.zimmi May 11, 2016 at 12:19:04 (UTC)
Goto Top
Hi Pixel,

ist denn eigentlich nicht besser "setx" als "set" benutzen?

Gruß

Holli
Member: MrCount
MrCount May 11, 2016 at 12:25:10 (UTC)
Goto Top
Hi,

generell würde ich mit " " arbeiten, z.B.:
set "PC=%COMPUTERNAME%"  
Member: pixel0815
pixel0815 May 11, 2016 at 12:57:08 (UTC)
Goto Top
Hilft nicht. face-sad
Member: MrCount
MrCount May 11, 2016 at 13:05:58 (UTC)
Goto Top
IF %CLIENTNAME% NEQ Console set PC=%Clientname% IF %CLIENTNAME% EQU Console set PC=%COMPUTERNAME% 
sollte nicht in 1 Zeile stehen
IF %CLIENTNAME% NEQ Console set PC=%Clientname%
IF %CLIENTNAME% EQU Console set PC=%COMPUTERNAME% 

Den Sinn von
set Clientname 
verstehe ich auch nicht so ganz.
Da wird ja kein Wert zugewiesen...
Member: Snowman25
Snowman25 May 11, 2016 at 13:15:37 (UTC)
Goto Top
: set Clientname : Falls Clientname bereits gesetzt ist, wird er ausgegeben. Errorlevel: 0 // Falls nicht gesetzt wird ein Fehler geworfen. Errorlevel: 1

Ist also durchaus wichtig für das nachfolgende IF.
Member: MrCount
MrCount May 11, 2016 at 13:19:43 (UTC)
Goto Top
Zitat von @Snowman25:
Ist also durchaus wichtig für das nachfolgende IF.

Danke, jetzt sehe ich es auch ^^ (bin wohl schon mit einem Bein im Urlaub...)
Hatte die Zeilen nur überflogen und nicht im "Zusammenhang" analysiert, sondern nach offensichtlichen Fehlern gesucht...
Mitglied: 129148
129148 May 11, 2016 updated at 16:32:41 (UTC)
Goto Top
@echo off & setlocal enabledelayedexpansion
set Clientname && goto Citrix
set "PC=%COMPUTERNAME%"  
goto aufruf
:Citrix
IF /i "%CLIENTNAME%" == "Console" (  
   set "PC=%COMPUTERNAME%"  
) else (
    set "PC=%Clientname%"  
)
:aufruf
set "URL=http://servername/login.php?host^=!PC!"  
start "" iexplore "%URL%"  
Member: Snowman25
Snowman25 May 12, 2016 at 14:10:03 (UTC)
Goto Top
Zitat von @129148:

> @echo off & setlocal enabledelayedexpansion
> set Clientname && goto Citrix
> set "PC=%COMPUTERNAME%"  
> goto aufruf
> :Citrix
> IF /i "%CLIENTNAME%" == "Console" (  
>    set "PC=%COMPUTERNAME%"  
> ) else (
>     set "PC=%Clientname%"  
> )
> :aufruf
> set "URL=http://servername/login.php?host^=!PC!"  
> start "" iexplore "%URL%"  
> 

Erklärung? Änderung?
Mitglied: 129148
129148 May 12, 2016 updated at 17:31:35 (UTC)
Goto Top
Zitat von @Snowman25:
Erklärung? Änderung?
Sieht man doch wenn man zwei Augen im Kopf hat und beide nebeneinander legt. Das sind solche Basis-Befehle die man nachschlagen kann, da bedarf es keiner weiteren Erklärung mehr, oder sind wir hier im Kindergarten wo man den Kindchen den Löffel an den Mund führen muss ?
Member: Snowman25
Snowman25 May 13, 2016 at 09:17:43 (UTC)
Goto Top
Zitat von @129148:

Sieht man doch wenn man zwei Augen im Kopf hat und beide nebeneinander legt. Das sind solche Basis-Befehle die man nachschlagen kann, da bedarf es keiner weiteren Erklärung mehr, oder sind wir hier im Kindergarten wo man den Kindchen den Löffel an den Mund führen muss ?

Ich hab keinen Bock, stöndig hich und runter zu scrollen, um das Skript mit dem Original zu vergleichen.
Zumindest einen Satz dazuschreiben ist ja wohl nicht zu viel verlangt.
Mitglied: 129148
129148 May 13, 2016 updated at 10:03:08 (UTC)
Goto Top
@Snowman25
Naja, es fehlten einfach ne Menge Anführungszeichen und in der Zeile hier
IF %CLIENTNAME% NEQ Console set PC=%Clientname% IF %CLIENTNAME% EQU Console set PC=%COMPUTERNAME%
der Hauptfehler - werden zwei Anweisungen in einer Zeile hinter eine IF-Anweisung geschrieben, ohne das man sie getrennt hätte also abtrennen wie ich es oben gemacht habe. Sieht man eigentlich auf den ersten Blick.

Mal ehrlich Copy n'paste in zwei neben einander platzierte Editor-Fenster kann jedes Kind.
Member: MrCount
MrCount May 13, 2016 at 09:37:04 (UTC)
Goto Top
Das mit den [=304214&nid=242851#comment-1098452 IFs in einer Zeile] hatte ich ja auch schon anfangs mitgeteilt...
Mitglied: 129148
129148 May 13, 2016 updated at 09:41:59 (UTC)
Goto Top
Das mit den Anführungszeichen und den beiden IFs in einer Zeile hatte ich ja auch schon anfangs mitgeteilt...
Eben, deswegen wollte ich es auch eigentlich nicht noch einmal wiederholen, aber @Snowman25 brauchte wohl eine extra Einladung.
Aber der TO hat wohl anscheinend sowieso kein Interesse mehr am Thread.
Member: Biber
Biber May 13, 2016 updated at 09:58:03 (UTC)
Goto Top
[OT]
Moin icybox, moin Snowman,

geht es euch eigentlich auch so, dass ihr euch auch so relaxed und chillig verhaltet, weil bald das lange Wochenende anfängt?

Mag ja sein, dass der Tonfall eures Dialogs in dem anderen Thread ausnahmsweise entgleist ist. Bzw. mag nicht nur sein, das ist so gewesen.

Aber bitte regelt das mit einem kurzen PN-Dialog (Beispiel "Sorry für gestern, schönes Wochenende ", Antwort "Ach was, Schwamm drüber,.Vrohe Vinxten"), aber bitte nicht offentlich über mehrere Beiträge verteilt.

Danke schon mal, wenn ihr das ohne Moderation hinbekommt
Biber
[/OT]
Mitglied: 129148
129148 May 13, 2016 updated at 10:04:50 (UTC)
Goto Top
[OT] Kann er gerne tun ich habe mir nichts vorzuwerfen, scheint einfach manche User zu geben die hier auf diese Weise Ihren Frust loswerden wollen. Einfach nur unprofessionell kann man da nur sagen, und das in einem "Administrator"-Forum.[/OT]