Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

SetX und Benutzervariablen entfernen?!

Frage Entwicklung Batch & Shell

Mitglied: der-blob

der-blob (Level 1) - Jetzt verbinden

04.10.2011, aktualisiert 15:24 Uhr, 6273 Aufrufe, 6 Kommentare

Hallo zusammen,
ich habe 2 kleine Fragen...

Frage 1: ist es möglich per batch BENUTZERvariablen zu ENTFERNEN? (setx variable "") macht diese ja nur "leer" aber entfernt sie nicht. - wenn ja: kann mir jemand sagen wie?

Frage 2:
ich habe folgendes kleines scriptchen...

01.
::@echo off 
02.
set /p lic="blahhhhhh" 
03.
set /p lan="Bitte Sprache angeben (german|english): " 
04.
if "%lan%"=="english" ( 
05.
set lan1=Englisch 
06.
) else ( 
07.
if "%lan%"=="german" ( 
08.
set lan1=Deutsch 
09.
) else ( 
10.
goto err1 
11.
12.
13.
 
14.
echo blahhhhh: %lic% 
15.
echo Die Sprache ist: %lan1% 
16.
 
17.
setx sprach %lan% 
18.
setx irgendwas 52%lic% 
19.
pause 
20.
exit 
21.
 
22.
:err1 
23.
echo ERROR 
24.
echo Sprache ist nicht english oder german. 
25.
echo ERROR 
26.
pause
Wenn ich nun eine shell aufmache, und in dieser Shell das Script ausführe, funktioniert alles wie es soll. Wenn ich jedoch das Script per Doppelklick ausführe, und halt german oder english eingebe (also nicht auf error läuft) ist es sozusagen in einer "endlos" schleife. Wenn ich jedoch auf error laufe funktioniert es Tadellos.

Jemand ne ahnung wie ich dieses script per doppelklick "ordentlich" ausführen kann?
Mitglied: 60730
04.10.2011 um 11:32 Uhr
moin,

ich habe ein paar Gegenfragen....
Frage 1: ist es möglich per batch BENUTZERvariablen zu ENTFERNEN? (setx variable "") macht diese ja nur "leer" aber entfernt sie nicht. - wenn ja: kann mir jemand sagen wie? face-smile

  • nunja - eigentlich ist eine leere Variable immer auch eine gelöschte und im Zweifel kannst du Benutzervariablen immer löschen, wenn du die im Kontext des Benutzers ausführst.
  • dann verstehe ich nicht, warum der User "english" ein/vertippen soll und du dann eh Englisch draus zimmerst - ein e oder d wäre doch einfacher...
  • leider haben die Codetags hier immer eine Nebenwirkung - hinter jeder Zeile ist ein Leerzeichen - von daher und weil der gelernte Bätchelohr es eh so haben will...
set "lan1"=="Englisch"
denn set test= (also leerzeichen), löscht tatsächlich nicht die Variable, sondern gibt Ihr den Wert "Leehrzeichen"

  • dein GewirrSpagehtticode von Zeile 5-12....
01.
if not "%lan%"=="english" if not "%lan%"=="german" goto err
Dort hast du die "" ja gesetzt, aber nicht überall

<Edit> - wtf ist %lan% und was soll%lan1%?
Bist du dir sicher, dass hier die Version steht, von der du deine Problematik geschildert hast?
</Edit>

Gruß
Bitte warten ..
Mitglied: der-blob
04.10.2011 um 11:47 Uhr
Hallo, erstmal Danke für das auflösen von mein gewirr... - es funktioniert zwar, aber sieht halt naja aus, aber soll auch nicht toll aussehen, ist nur eine "notlösung".

ich hätte vielleicht bisschen mehr dazu Schreiben sollen *schäm*

Ich weis mit set blah= hat man dann den tollen wert leer... jedoch bringt mir dies in diesem zusammenhang nichts.
Denn die Variablen welche ich definier, sind schon als Systemvariablen vorhanden, und sollen nur Temporär (wie gesagt notlösung) umgebogen werden und da mehrere Programme auf diese Variablen zugreifen. ist es am einfachsten (soweit ich weis) einfach Benutzervariablen zu definieren, da diese ja "aussagekräftiger" sind. Und die Systemvariablen mit ;.... zu erweitern ist Theoretisch möglich, jedoch fehlen den Usern dazu die Rechte. Und am ende der Woche sollen diese einfach wieder gelöscht werden, per Schedule Task, oder 2. Script ist ja am ende egal.

Und das mit den aus english -->Englisch ist nur damit man "Englisch" lesen kann.. im Prinzip ist es total egal ob man nun E, G bzw. D eintippt kann mir ja entsprechend meine Variablen raus"saugen".

Ich hoffe damit ist mein Problem besser nachzuvollziehen.

€:
zu den %lan% und %lan1%, wie gesagt das %lan1% ist nur für das echo da... kann man theoretisch(auch praktisch) Komplett rauswerfen... - denn verwendet wird ja das %lan% also, german oder english.


Gruß
Bitte warten ..
Mitglied: bastla
04.10.2011 um 12:52 Uhr
Hallo der-blob!

Die Beantwortung der Frage 1 überlasse ich mal MS themselves:
You cannot use the setx command to remove values that have been added to the local or system environments. You can use set with a variable name and no value to remove a corresponding value from the local environment.
"User"-Variablen solltest Du mit
setx Var ""
aber loswerden (zumindest unter XP soeben erfolgreich getestet) ...
Zu 2. hat T-Mo ja schon einiges angemerkt - ich würde aber jedefalls dem "if" noch ein "/i" spendieren ...

Grüße
bastla
Bitte warten ..
Mitglied: der-blob
04.10.2011 um 13:51 Uhr
Hallo,
danke für die Antwort, jedoch das ich mit setx var "" die variable "loswerde" wusst ich schon, nur das bringt mich an der stelle nicht genau weiter (siehe bild). - deshalb fragte ich ob da jemand noch was anderes kennt


9cab5892a4497d4af768bed156aae5e6 - Klicke auf das Bild, um es zu vergrößern


- Irgendwie glaube ich immer mehr das ich mit entweder besch... Ausgedrückt habe oder es einfach keine - für mich in diesem fall - funktionierende Lösung gibt.

Denn ne "leere" BENUTZERvariable bringt mir ja auch nichts, wenn später wieder die SYSTEMvariable genutzt werden soll..

Vielleicht kann mir ja doch jemand weiterhelfen, glaube es jedoch weniger. Werde heute Nachmittag Beitrag als gelöst makieren, mit der erkenntnis, das es nicht machbar ist

Danke für eure Unterstüzung, denn ich glaub wenn ihr da schon nich weiter wisst geht da wirklich nichts.
Bitte warten ..
Mitglied: 60730
04.10.2011 um 14:16 Uhr
Moinsen,

Bilder sagen mehr als 1.000 Worte...

Vielleicht kann mir ja doch jemand weiterhelfen, glaube es jedoch weniger

Glauben, heisst nicht wissen und auch wenn deine Frage falsch einsortiert ist (Verschieben kannst du das übrigens selber - uns Biber ist heute bestimmt im Mondaymode) - Wenn du hier nach einer Batchlösung fragst, die keine Kaffe kochen soll, kriegst du auch ne funktionierende Antwort.

Wäe ja noch schöner, wenn ausgerechnet wir hier "sowas" nicht praktikantisch lösen könnten....

 reg delete HKCU\Environment /v qwe /f
@bastla - logisch ein Ieh (vom IF) kann alleine nicht stehen, das /i hatte ich einfach vorausgesetzt, aber gut, das deine Augen immer mit dabei sind

Gruß
Bitte warten ..
Mitglied: der-blob
04.10.2011 um 15:23 Uhr
Danke, ich dachte am anfang mit

...BENUTZERvariablen zu ENTFERNEN..

Hatte ich mich klar ausgedrückt. - War wohl nicht der fall :D -

Aber da so eine ähnliche Antwort wie von dir kam, dachte ich nen Bild wär angebracht..



Und das glauben != wissen ist, weiss ich sonst hätt ich geschrieben "es kann mir keiner weiterhelfen" :P

Vielen dank, nachdem ich den lieben Thread verschoben habe, kommt der grüne Haken zum einsatz


Gruß
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Appx aus Image auslesen und entfernen (9)

Frage von Markus2016 zum Thema Batch & Shell ...

CPU, RAM, Mainboards
CPU Lüfter von CPU entfernen (6)

Frage von uridium69 zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...