Jump to content

Ody

Members
  • Gesamte Inhalte

    16
  • Registriert seit

  • Letzter Besuch

Fortschritt von Ody

Explorer

Explorer (4/14)

  • Erste Antwort
  • Engagiert
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei

Neueste Abzeichen

0

Reputation in der Community

1

Beste Lösungen

  1. Hallo Massaraksch, gut das du nochmal nachfragst weil mir sonst mein Fehler bei der geposteten Lösung nicht aufgefallen wäre. Du hast vollkommen recht, jetzt verstehe ich auch dein SKIP Hinweis: C:\>reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MeinProgram\ /v Pfad skip 1 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MeinProgram skip 2 Pfad REG_SZ C:\Program Files (x86)\Mein Program\ Ich dachte ich muss die ersten beiden Zeile ignorieren was nach meinen erneuten Tests, wie du schon sagtest unsinnig ist. Deine Variante fügt Token 3 (%%i) mit dem Rest * (%%j) zusammen, leider geht dabei das Leerzeichen zwischen den beiden Variablen verloren, also zwischen "C:\Program" und "Files...". Lösung ist ab Token 2 zu Starten und * also nur %%j zu verwenden: for /f "tokens=2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MeinProgram" /v Pfad') do set VAR=%%j Nochmal Danke an Alle und besonders an lefg und massaraksch! Grüße Ody
  2. Es für jemanden der nicht so viel Ahnung hat wie du nicht immer einfach das wesentliche herauszufiltern, aber dafür gibt es ja solche Foren und nette Menschen wie dich die versuchen die richtigen Anstöße zu geben, nochmals Danke an dieser Stelle. p.s. Suchen bevor man postet sollte natürlich immer die erste Wahl sein, was ich auch gemacht hatte
  3. Ja lefg du hast ja sowas von recht zu dem Zeitpunkt war mir aber das zuweisen der automatischen Folgevariablen noch nicht ganz klar, daher hat es bei meinen Tests auch nie funktioniert :-/
  4. Hallo zusammen, Dank lefg und massaraksch ist mir der Fehler in meinem Post aufgefallen und hab ihn deshalb entfernt um andere nicht zu verwirren. Siehe Post 32 mit der Lösung
  5. Hallo und willkommen, ich hatte ein ähnliches Problem, wenn dein Pfad fix ist hast du hier ein Beispiel wie man es auslesen und als Variable definieren kann. Mein Problem war das ich flexibel auf Leerzeichen eingehen wollte was mit Batch nur mehr als umständlich oder gar nicht geht: http://www.mcseboard.de/topic/206525-batch-variable-aus-registrierung-mit-leerzeichen/?p=1296103 weiter Vorschläge waren den Wert als Systemvariable zu setzten oder es über PowerShell zu lösen. Vielleicht hilft dir das weiter, viel Erfolg! Grüße Ody
  6. Hallo zusammen, dann tut es mir leid wenn ich euch damit aufgehalten habe! Ich werde es vorerst mit Standards umgehen und mir zahnis Vorschlag zu Herzen nehmen. Es war für mich trotzdem sehr aufschlussreiche, dafür Danke an die Runde! Grüße Ody
  7. @lefg Ich möchte mit dem ausgelesenen Pfad innerhalb des Programms Aktionen ausführen wie z.B. Exen starten und/oder über Taskkill wieder beenden, Logfiles auslesen / kopieren, Sicherungen von Unterordnern durchführen. @Sunny61 Mein Ansatz ist (war!?) nichts am System zu verändern und flexibel bezüglich der Umgebungen zu sein. Wenn es nicht geht muss ich mir was anderes überlegen. Bezüglich der Anführungszeichen hab ich alles mögliche versucht, nachdem ich aber den Wert erst über "Tricks" For und reg query rauskriege hat das nicht geklappt. Theoretisch würde es reichen wenn ich es schaffe am Anfang und alternativ am Ende Anführungszeichen zu setzten. Das Ende könnte ich wieder als Klartext definieren wenn ich mein copy, Taskkill usw ausführe.
  8. Hallo zusammen, herzlichen Dank für euer weiteres Feedback! @lefg Es gibt in der Registrierung eine Zeichenfolge "Pfad" wo das Installationsverzeichnis des Programms liegt. Beispiel C:\Program Files (x68)\Program ich hab mir für meine Tests einfach einen Schlüssel angelegt mit dem ich rumspiele. @Sunny61 Das ist ein guter Ansatz, somit kann ich evtl. das Thema "Program Files", "Programme" bzw. "Program Files (x86)" umgehen. Das hilft mir aber nicht weiter wenn der Unterordner des Programs auch ein Leerzeichen z.B. C:\Program Files (x86)\Mein Program\ hat. @daabm SETX kannte ich noch nicht, ich hab mir das mal angeschaut, so wie ich das sehe werden da aber fix Umgebungsvariablen gesetzt die auch nach dem ausführen der Batch weiter zur Verfügung stehen. Ich möchte ja nur zur Laufzeit den Pfad aus der Registrierung auslesen und verarbeiten. Bei meinen Tests hab ich es aber nicht geschafft den Wert in die Variable zu schreiben. Aber da Teste ich noch weiter. @massaraksch Da hast du wohl recht, ich bin aber auch von Gestern :-) Der skip ignoriert die ersten beiden Zeilen was dir der Reg query ausgibt, ich will nur die Zeile wo der Wert der Zeichenfolge enthalten ist, die wiederum wird mit Token genauer analysiert. @All ich dachte mir das es mit for /f recht einfach möglich ist den Wert komplett in eine temporäre Variable zu schreiben und zu verarbeiten. So wie es aussieht ist es anscheinend nicht so einfach und ich werde um den Vorschlag von zahni nicht rumkommen? Vielleicht noch mit zusätlicher Prüfung von findstr? Hab da mal versucht die Leerzeichen zu ermitteln, aber das hat hintern und vorne nicht hingehauen. Beste Grüße Ody
  9. Guten Abend zusammen, erst mal vielen Dank für eure Rückmeldung und Bemühungen! @lefg Ich hab natürlich vor dem Post schon versucht eine Lösung zu finden, bin auch auf zwei Einträge gestoßen wo es um Werte aus Registrierung auslesen usw. geht bei einem wurde dann genau die Frage gestellt (von einem anderen User) und die Antworten blieben aus :-) Das mit den Tokens ist ein Ansatz, aber was bringt es mir einen Wert auszulesen wenn ich wissen muss wie viele Leerzeichen er enthält dann doch lieber gleich im Batchfile mit set fixen und Standards definieren. Aber Flexibel wäre doch einfach zu schön :-) ich suche auf jeden Fall weiter. Deine Idee mit delims=°, Tokens=3,* (Da hatte ich kurz Hoffnung) hat leider nicht funktioniert @blub hab ich versucht: FEHLER: Der angegebene Registrierungsschlüssel bzw. Wert wurde nicht gefunden. @zahni mist er hat mich entdeckt :-) Du wirst lachen, aber ich hab mir sogar Tutorials angeschaut und werde mich da nach und nach rantasten aber Veränderung dauert bekanntlich seine Zeit und Lösungen wollen meistens gestern schon durch die Tür. Aber ich hab es mir zu Herzen genommen, wie gesagt bin kein scripter und daher nur sehr langsam bei sowas. Danke! Euch allen jetzt erst mal ein schönes Wochenende! @lefg Nachdem man nur mit testen lernen und wieder testen sein Wissen erweitern kann, hab ich mir deine Token Idee angeschaut: for /f "tokens=3,4,5 skip=2 delims= " %a in ('reg query "%REG%" /v Pfad') do set var1=%a&set var2=%b&set var3=%c set var=%var1% %var2% %var3% echo %var% In meinem Beispiel sind es 3 weitere Tokens Nummer 3=C:\Program Nummer 4=Files Nummer 5=(x86)\Programm\ nachdem mit delims das Leerzeichen als Trennzeichen gesetzt ist, alle zusammen in eine neue Variable Schreiben und dort die Leerzeichen wieder setzten. Resultat von %var%: C:\Program Files (x86)\Programm\ :-) Aber wie gesagt Flexibel wäre schön, da ich nicht weiß wie viele Leerzeichen im Pfad in der Registrierung stehen. Ich suche weiter und bin nach wie vor für Denkanstöße dankbar
  10. ja genau er gib nur alles bis zum ersten Leerzeichen aus
  11. Hallo Nobbyaushb, das hab ich auch in allen möglichen Varianten versucht aber nachdem der Wert direkt In der for Schleife ausgelesen und in die Variable geschrieben wird hab ich da ja nicht viel Möglichkeiten? Hab sogar mit usebackq ein bisschen rumgespielt. Grüße Ody Hi lefg, ich glaub nicht das ich damit ans Ziel komme, ich will den Pfad ja mit Leerzeichen weil er später verwendet wird um z.B. Dateien zu lesen oder exen zu öffnen. Ich muss aber auch gestehen das ich mit der Beschreibung von %PATH:str1=str2% nicht ganz klar kommen. LG Ody
  12. Hallo zusammen, ich hab wieder ein kleines Problem wo ich nicht weiterkomme. Ich möchte einen Wert aus der Windows Registrierung auslesen und in eine Variable schreiben. Soweit kein Problem Code: for /f "tokens=3 skip=2" %%i in ('reg query "%REG%" /v Pfad') do set VAR=%%i %REG% ist der Schlüssel der vorher definiert wurde mit "Pfad" wird die Zeichenfolge ausgewertet und in die Variable VAR geschrieben. Jetzt zu meinen Problem: Die Variable hat Leereichen was dafür sorgt das beim ersten Leerzeichen Schluss ist. Wert: C:\Program Files (x86)\Programm Wert in der Variable C:\Program ohne Leerzeichen Funktioniert es Problemlos. muss ich mit delims was definieren? Hab mehrere varianten versucht ohne das Ziel zu erreichen. Vielen Dank im voraus Ody
  13. Ody

    Batch mit Logfile

    Hallo Cybquest, super vielen Dank genau das was ich gesucht habe :-) Beste Grüße Ody
  14. Ody

    Batch mit Logfile

    Hallo Zahni, vielen Dank für den freundlichen Empfang :) Ich habe fast befürchtet das es auf Powershell oder autoit rauslaufen könnte, als "nicht Scripter" ist das mehr als mühsam da was taugliches zusammen zubekommen. zudem funktioniert Batch fast immer ohne großartig im OS was aktivieren zu müssen. Ich wäre daher dankbar wenn jemand noch Ideen hat.
  15. Ody

    Batch mit Logfile

    Hallo Expert, so habe ich es auch hinbekommen, ich hätte aber gerne Datum und Uhreit vor jeder Ausgabe damit auch die Verzögerungen der einzelnen Aufgaben ins Auge stechen. Hier ein Beispiel: ################ Start Batch deaktivieren ################ 02.03.2016 18:15:01,62 Beenden wurde vom Benutzer initiiert... 02.03.2016 18:15:08,59 Es wurde versucht Notepad.exe zu beenden. Resultat: 02.03.2016 18:15:11,31 FEHLER: Der Prozess "notepad.exe" wurde nicht gefunden. 02.03.2016 18:15:11,37 Es wurde versucht Notepad.exe zu beenden. Resultat: 02.03.2016 18:15:16,29 ERFOLGREICH: Der Prozess mit PID 148 (untergeordnetem Prozess von PID 3608) wurde beendet. 02.03.2016 18:15:16,37 usw.... ################ Ende Batch deaktivieren ################ ################ Start Batch aktivieren ################ 02.03.2016 18:22:15,32 Starten wurde vom Benutzer initiiert... 02.03.2016 18:22:15,38 Notepad wurde gestartet mit dem Errorlevel: 128 02.03.2016 18:22:20,31 usw... ################ Ende Batch aktivieren ################
×
×
  • Neu erstellen...