Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Na wie mach ich denn das?


  • Please log in to reply
6 replies to this topic
maexchen
  • Members
  • 21 posts
  • Last active: Feb 21 2016 08:17 PM
  • Joined: 04 Nov 2012
Hallo zusammen

Ich bin nun schon seit 2 Tagen am Herumbasteln einer Kommandozeile....
Ich schaffs nicht, drum bitte ich um Hilfe...

In eine Variablen habe ich diesen String:

Var_GroupToManage = "CN=Division_LOG_Managers,OU=Groups - Managers,OU=x1x1x1x1,OU=Switzerland,OU=Central Europe,DC=x2x2x2x2,DC=x3x3x3x3x,DC=com"

Diesen benötige ich später, um einen im Command-Prompt abgesetzten Befehl ( mit RunWait, %comspec% /c % "%A_WinDir%\System32\dsquery.exe xxxxxxx yyyyyy %Var_GroupToManage% zzzzzzz" ) dynamisch mit dieser Variablen versorgen zu können....

Nun hat dieser String schon mehrere Kommas drin. Wenn ich den Befehl nun im Command Prompt absetzen möchte, müssen diesen Kommas ein accent (`) vorangestellt werden, damit der Befehl richtig umgesetzt wird...

also so:

Var_GroupToManage = "CN=Division_LOG_Managers,OU=Groups - Managers,OU=x1x1x1x1,OU=Switzerland,OU=Central Europe,DC=x2x2x2x2,DC=x3x3x3x3x,DC=com"
sollte zu
Var_GroupToManage = "CN=Division_LOG_Managers`,OU=Groups - Managers`,OU=x1x1x1x1`,OU=Switzerland`,OU=Central Europe`,DC=x2x2x2x2`,DC=x3x3x3x3x`,DC=com"
werden, damit der cmd - Befehl richtig umgesetzt wird....

Und das krieg ich nicht hin, versuchte verschiedene Varianten mit StringReplace, OutputVar, InputVar, SearchText , ReplaceText, 1, jedoch keine Version wollte klappen... Wie kann mir da geholfen werden?

-----------------------
Noch eine zweite Frage....

Wenn ich aus dem Command-Prompt einen Befehl absetze, welcher mir ein output gibt, leite ich das normalerweise in ein temporäres File um. (zb: dsquery * xxxxx>temp.txt) und dieses lese ich dann im ahk mit Filereadline aus und wenn ich es nicht mehr brauche, dann lösche ich es wieder mit Filedelete. Eine recht umständliche Art, aber ich weiss es eben nicht besser....

Ich denke, es wird sicher eine einfachere und elegantere Art und Weise geben, zb dass ich den Result direkt ins Clipboard oder in eine Variable schreiben lassen kann - ohne den Umweg eines Files... ? Wie macht Ihr das so ?

Danke euch für eine schnelle Hilfe !

René [maexchen] Erdenberger

ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008
Zu deiner 1. Frage:
Var_GroupToManage = "CN=Division_LOG_Managers,OU=Groups - Managers,OU=x1x1x1x1,OU=Switzerland,OU=Central Europe,DC=x2x2x2x2,DC=x3x3x3x3x,DC=com"
StringReplace,Var_GroupToManage,Var_GroupToManage,`,,```,,A
ToolTip,% Var_GroupToManage


maexchen
  • Members
  • 21 posts
  • Last active: Feb 21 2016 08:17 PM
  • Joined: 04 Nov 2012
Vielen Dank, ruespe, es funtioniert!! (Naja, klar, gell.. :-)) ) Und ich habs mit keinem, mit einem, mit zweien Accents probiert... hmm.. wär ich doch weiter dran geblieben.. :-)

:-)

Many thanks ! Super, so schnell ne Antwort, das schätze ich sooo an diesem Forum!

Und jetzt, nach 10min studieren ists mir klar wie Wasser! Ich muss JEDES Sonderzeichen escapen, darum 3! Escapes... :-) Mann.. WAR ich blöd, jetzt bin ich schlauer...

René [maexchen] Erdenberger

maexchen
  • Members
  • 21 posts
  • Last active: Feb 21 2016 08:17 PM
  • Joined: 04 Nov 2012
Zu früh gefreut... :-( Das verstehe ich nun überhaupt nicht.... Kann mir jemand das erklären warum das passiert und wie ich es richtig machen muss?
Ich konnte nun - mit ruespe's HIlfe - meine Kommandozeilen zusammenbauen und - von meinem Gefühl und logischem Verständnis her müsste es doch klappen.
Ich hatte ja den String, den ich mit "Escapes" ausstatten wollte, damit ich diesen in eine Kommandozeile einbauen kann.

So sieht mein String nun richtigerweise aus:

Var_GroupToManage = CN=Division_LOG_Managers`,OU=Groups - Managers`,OU=x1x1x1x1`,OU=Switzerland`,OU=Central Europe`,DC=x2x2x2x2`,DC=x3x3x3x3x`,DC=com

(Danke, nochmals an ruespe :-))
Wenn ich jedoch die Kommandozeile im ahk ausführen lasse:

RunWait,C:\Windows\system32\cmd.exe /c C:\Windows\System32\dsquery.exe * domainroot -filter "(&(objectCategory=Group)(objectClass=group)(managedby=%Var_GroupToManage%))" -attr cn>"G:\ProjektADSS\GroupsToManage.inf",, Hide

kommt nix... das GroupsToManage.inf bleibt leer.

AAABER..
Ich hab versuchsmässig mal den String in ein File buxiert mit Fileappend, RunWait`,C:\Windows\system32\cmd.exe /c C:\Windows\System32\dsquery.exe * domainroot -filter "(&(objectCategory=Group)(objectClass=group)
(managedby=%Var_GroupToManage%))" -attr cn>"G:\ProjektADSS\GroupsToManage.inf"`,`, Hide, TestFile.txt

und dann den result im txt File wieder ins ahk zurückkpoiert und ausführen lassen:

RunWait,C:\Windows\system32\cmd.exe /c C:\Windows\System32\dsquery.exe * domainroot -filter "(&(objectCategory=Group)(objectClass=group)(managedby=CN=Division_LOG_Managers`,OU=Groups - Managers`,OU=x1x1x1x1`,OU=Switzerland`,OU=Central Europe`,DC=x2x2x2x2`,DC=x3x3x3x3x`,DC=com"))" -attr cn>"G:\ProjektADSS\GroupsToManage.inf",, Hide

Und siehe Da... es geht wieder.... !?!? Also am Befehl kann ja dann nicht liegen ? Woran dann? Evtl mit dem Format (UTF / UTF8 etc?) Kann ich mir aber fast nicht vorstellen... hmmm

Oder geht das einfach nicht, was ich da vorhab?

Danke für Eure Hilfe!

René

ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008
Ich stochere mal ein bisschen im Nebel: die Escape-Zeichen sollen ja dem Run-Kommando sagen, dass die Kommata zum String gehören und nicht Optionen trennen. Wenn der String aber komplett in der Variablen steht, braucht es die Escape-Zeichen evtl. gar nicht. Probier das mal.

maexchen
  • Members
  • 21 posts
  • Last active: Feb 21 2016 08:17 PM
  • Joined: 04 Nov 2012

Hmmm. Gute Überlegung. War zwar der meinung, dass ich das schon mal probierte, kann mich aber nicht genau erinnern... Werde es morgen gleich mal versuchen!

Danke Dir für Deinen Input!

Glg
René

maexchen
  • Members
  • 21 posts
  • Last active: Feb 21 2016 08:17 PM
  • Joined: 04 Nov 2012
Moin, ruespe.... Ich sag nur.... Volltreffer ! Ja, es funktioniert tipptop... :-)

Viiielen Dank für Deinen Tipp, ich wär vermutlich nie drauf gekommen... Aber nun....schon wieder gelernt, Toll!

Lg
René