Windows .bat-Datei, um zwischen Demo- und Vollversion wechseln zu können

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Windows .bat-Datei, um zwischen Demo- und Vollversion wechseln zu können

      Da meine Progrämmelchen oft vom Umfang her so klein sind, dass sie auch mit der Demoversion von bascom compiliert werden könnten, würde ich gerne zwischen den Versionen zu Testzwecken umschalten können. Das geht im Prinzip, aber es kommt beim Starten einer Version ein Sack Fehlermeldungen, weil die von den Versionen im user-Verzeichnis abgelegen 'Programmeinstellungsdatei' untereinander nicht kompatibel ist. Wenn man 2 user anlegt, der eine verwendet die demo, der andere die Vollversion geht alles fehlerfrei.
      Aber es gibt doch sicherlich noch die Möglichkeit mit batch-Dateien beide Versionen innerhalb eines users umzuschalten, bzw wahlweise zu starten. Jede Version hat eine eigene batch-Datei, in der die 'Programmeinstellungsdatei' zB. aus einem Sicherungsordner heraus in den user-Ordner kopiert wird und die passende bascom-Version gestartet wird. Nur ich hab mit batch-Befehlen nix a Hut und keinen Dunst. Wäre hier im Forum jemand mit mehr Kenntnissen und könnte einen Rahmen für so eine Datei zur Verfügung stellen, wo ich dann nur die Pfade für Programmstart und Programmeinstellungsdatei eintrage?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Nee nee, es geht nicht um die dll.
      Ich hab' die 2.081 als Vollversion und die 2.075 als Demo. Beim Beenden schreiben beide Versionen in das user-Verzeichnis unter 'username/appdata/mcsblablabla' (also nur so ungefähr) die gemachten Programmeinstellungen in eine Datei. Diese wird beim Neustart des Programms gelesen und überschreibt die defaults, damit man seine gewünschte, eingestellte Umgebung vorfindet. Und diese Datei ist unter den Versionen nicht kompatibel, die muss man eben vor Programmstart zB mit einer batch wechseln.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ih würd das ja anders machen, mit der Batch kann es passieren das wenn die Batch abbricht deine Profile wieder nicht stimmen ausser man baut massig checks ein. Leg im Windows einen neuen User an, auf den startest du dann per rechtsclick die eine Bascom version von deinem ursprünglichen account aus (run as) Kannst du auch in einer Programmverknüpfung oder ner Batch :D hinterlegen.
      So können bis auf Programmerzugriff beide versionen zeitgleich laufen, die settings werden im zugehörigen userspace hinseparat abgespeichert.
      Konnt ichs erklären?

      Tobias
    • Ist jetzt nur schnell auf dem Tablett (und aus der Erinnerung), aber im Prinzip müsste das so gehen (wenn nach dem schließen noch zurückgesichert werden soll, dann muss die Copy-Zeile nach dem Bascom Aufruf nochmals mit ungekehrten Pfaden ans Ende.
      Pfad ist z.B: c:\verzeichnis\Name.Erweiterung oder c:\verzeichnis\*.* für alle Dateien aus dem Verzeichnis.

      Python-Quellcode

      1. Echo off
      2. cls
      3. Copy quellpfad zielpfad >null
      4. c:\pfad\Bascom.exe
    • Mit 2 usern geht's, gut, und du meinst bascom-demo mit rechtsklick starten wie 'andere user' und dann wird dessen user-appdata verwendet?
      (Diese Frage betrifft Schraubbaer)
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tschoeatsch ()

    • Zitronenfalter schrieb:

      Ist jetzt nur schnell auf dem Tablett (und aus der Erinnerung), aber im Prinzip müsste das so gehen (wenn nach dem schließen noch zurückgesichert werden soll, dann muss die Copy-Zeile nach dem Bascom Aufruf nochmals mit ungekehrten Pfaden ans Ende.
      Pfad ist z.B: c:\verzeichnis\Name.Erweiterung oder c:\verzeichnis\*.* für alle Dateien aus dem Verzeichnis.

      Python-Quellcode

      1. Echo off
      2. cls
      3. Copy quellpfad zielpfad >null
      4. c:\pfad\Bascom.exe
      Das Zurückspeichern wäre natürlich nicht verkehrt, weil dann Änderungen immer übernommen werden. Ich muss jetzt einmalig gültige Quellpfade anlegen, dann läuft alles automatisch, oder?
      Das '>null' heißt 'überschreiben'?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Das >Nul leitet die Ausgaben des Copybefehls zum Device NUL anstatt auf dem Bildschirm.
      Eventuell muss da noch ein Parameter dazu um die bestehende Datei ohne Rückfrage zu überschreiben zu können.
      Ich habe da am Tabelle kein Windows, aber im schwarzen Schirm mit Copy /? sollte auch eine Hilfe angezeigt werden.
      Möglicherweise muß man dann auch noch die aufrufende Verknüpfung dann auch noch anpassen, damit da dann nicht immer ein schwarzer Schirm aufpoppt.
      Das fällt dann aber unter Verschönerung.
    • Schraubbaer schrieb:

      na das Batch beispiel sichert ja nicht die userdaten und alles läuft in einen useraccount.
      Tschoeatsch:
      Ja, jeder User läuft unter seinem eigenen appdata pfad, das ist ja das tolle daran.


      Tobias
      Das 'Starten als user2' geht auch in einer batch? Das wäre dann vielleicht idiotensicherer? (Äh, nicht das ich mich jetzt als I diot bezeichnen will, äh, ich mein', das wäre dann übersichtlicher)
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Geht es nur um die Datei bascom-avr.xml ? Die Samples und das Programmverzeichnis in dem die eigenen Programme liegen ist das selbe? In dem Fall würde ich die Bascom.exe über eine Verknüfung aufrufen die ein Script aufruft:
      Verknüpfung Demo ruft Sript Demo auf das dann kontrolliert ob die richtige bascom-avr.xml aktiv ist und dann das Demo startet. Genau so mit der Vollversion. Ist das das gewünschte?
    • Genau, das ist es. Nur kontrollieren braucht man nicht, man müsste nur die passende Datei beim Programmstart an dem erwarteten Ort bereit stellen und nach dem Beenden von bascom an einem anderen Ort sichern, von dem sie vor Programmstart eben bereit gestellt wird.
      Moment, die verschiedenen bascom-Versionen haben natürlich eigene Ordner und Pfade für deren libs etc. Nur der Ordner von meinen Programmen wird von beiden Versionen genutzt.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Schraubbaer schrieb:

      Ja, jeder User läuft unter seinem eigenen appdata pfad, das ist ja das tolle daran.
      Das klappt, wenn ich mich als entsprechender user anmelde. Wenn ich mit Rechtsklick bascom als anderen user starten möchte, hab' ich nur die Auswahl 'als admin', von dem anderen user ist nix zu sehen.
      Ich probier's mal mit dem Vorschlag von Zitronenfalter...
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hm, klappt irgendwie nix. Mein batch schaut so aus

      Echo off
      cls
      xCopy C:\Users\Michael\AppData\Roaming\MCS Electronics\bascom_Vollversion\bascom-avr.xml C:\Users\Michael\AppData\Roaming\MCS Electronics\
      C:\BASCOM-AVR\bascavr.exe
      xCopy C:\Users\Michael\AppData\Roaming\MCS Electronics\bascom-avr.xml C:\Users\Michael\AppData\Roaming\MCS Electronics\bascom_Vollversion\

      (ja, es ist ziemlich universell, etwa 97,3% der user hier werden es übernehmen können)
      dabei gibt es die Meldung 'zuviele Parameter'
      verwende ich nur 'copy' statt 'xcopy', dann kommt die Meldung 'Datei kann nicht gefunden werden'.
      Den Pfad hab' ich aus dem explorer kopiert, da steht ja erstmal statt 'user' ein 'Benutzer', aber beim markieren switcht das um. Die bascom-Version wird aufgerufen, das funktioniert. Das noch genannte >null hat nix verändert, außer das keine Meldung erschien.
      Kann es sein, dass es am Leerzeichen im Ordnernamen 'MCS Elektronic' liegt?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Du musst deine Pfade in Anführungszeichen setzen, da die Pfadangaben Leerzeichen enthalten.
      Und Ein Leerzeichen wiederum ist in einem DOS-Befehl ein Parametertrennzeichen.

      Eventuell ist es auch sinnvoll am noch /Y /Q anzufügen (nachdem du kontrolliert hast, dass das Script funktioniert).
      Mit dem ersten Parameter wirst du nicht gefragt, ob du eine bestehende Datei im Zielverzeichnis überschreiben möchtest (es wird einfach ausgeführt) und mit dem zweiten Parameter werden Bildschirmausgaben unterdrückt (das macht das Fenster übersichtlicher).

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Zitronenfalter ()

    • Zitronenfalter schrieb:

      Du musst deine Pfade in Anführungszeichen setzen
      aha, so kleine Zeichen haben so große Wirkung.
      Jetzt klappt's, danke nochmal a_14_3ef964b0
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------