TC8. 32Bit oder 64Bit ? (System, auf dem der TC läuft)

German support forum

Moderators: Hacker, Stefan2, white

User avatar
tuska
Power Member
Power Member
Posts: 4064
Joined: 2007-05-21, 12:17 UTC

Post by *tuska »

Hallo Holger,

vielen Dank für Deinen Code!

Für meinen USB-Stick verwende ich nun folgende Lösung (Die Programmdateien befinden sich im Ordner "TC32-64USB"), uzw.

Code: Select all

@IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (start %CD%\TC32-64USB\TOTALCMD64.EXE) else (start %CD%\TC32-64USB\TOTALCMD.EXE)
Der Laufwerksbuchstabe ist egal, d.h. die Lösung funktioniert auch wenn sich die Programmdateien zB hier befinden: D:\TC32-64USB oder J:\TC32-64USB.

Mit dem Code hatte ich nur ein Problem, wenn sich im Pfad ein Leerzeichen befindet ... D:\Daten\Programme\Total Commander\TCD_USB-Stick\.
Hier erhalte ich im DOS-Fenster die Meldung: "D:\Daten\Programme\Total" konnte nicht gefunden werden.

Ich würde meine portable Version auf der Festplatte gerne in dem Pfad D:\Daten\Programme\Total Commander\TCD_USB-Stick\ belassen, jedoch den Code (evtl. in abgeänderter Form) verwenden wollen.
Gibt es evtl. noch eine Lösung zu diesem Problem (Leerzeichen im Pfad) - falls es keine Lösung gibt oder diese zu aufwendig ist, dann ist das überhaupt kein Problem für mich.

Jedenfalls nochmals danke an dieser Stelle - auch an die anderen Forumsmitglieder die hier mitgewirkt haben.
Gruß,
Karl
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Immer diese leidige Leerzeichen (vergesse ich immer wieder, weil 99 Prozent der von mir benutzten Verzeichnisse keine Leerzeichen enthalten).
@IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (start "" "D:\Daten\Programme\Total Commander\TCD_USB-Stick\TOTALCMD64.EXE") else (start "" "D:\Daten\Programme\Total Commander\TCD_USB-Stick\TOTALCMD.EXE")
Alternativ:
cd "D:\Daten\Programme\Total Commander\TCD_USB-Stick\"
@IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (start TOTALCMD64.EXE) else (start TOTALCMD.EXE)
Daten\Programme ist allerdings eine etwas gewöhnungsbedürftiger Pfad.

Gruß
Holger
Camarillo
Junior Member
Junior Member
Posts: 66
Joined: 2011-12-20, 13:10 UTC
Location: Germany

Post by *Camarillo »

tuska wrote:Gibt es evtl. noch eine Lösung zu diesem Problem (Leerzeichen im Pfad)
Das geht, wenn man den Pfad vorher einer Variablen zuweist:

Code: Select all

@Set TC=Daten\Programme\Total Commander\TCD_USB-Stick
@If Defined ProgramFiles(x86) (start %CD%\%TC%\TOTALCMD64.EXE) else (start %CD%\%TC%\TOTALCMD.EXE)
Last edited by Camarillo on 2012-06-09, 21:41 UTC, edited 1 time in total.
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

tuska wrote:

Code: Select all

@IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" [...]
Diese Abfrage ist tödlich, wenn sie in einer unpassenden Shell ausgeführt wird! Konkretes Beispiel: CMD gestartet über irgendein 32 Bit Programm. Was steht nun in dieser Variable? Nicht etwa "AMD64" sondern "x86", weil es auf einem 64 Bit Windows nunmal beide CMDs gibt! Wirklich zuverlässig zu erkennen ist ein 64 Bit OS nur, wenn man den Inhalt der Variable "%ProgramFiles(x86)%" auf Leerheit prüft:

Code: Select all

if not "%ProgramFiles(x86)%"=="" [...]
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Wirklich zuverlässig zu erkennen ist ein 64 Bit OS nur...

Code: Select all

set ProgramFiles(x86)="fake"
:wink:
Holger
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

HolgerK wrote:
Wirklich zuverlässig zu erkennen ist ein 64 Bit OS nur...

Code: Select all

set ProgramFiles(x86)="fake"
:wink:
OK, da hast du recht. Aber wie oft kommt das vor? Da ist es deutlich wahrscheinlicher, die Batch in der "falschen" CMD auszuführen.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
tuska
Power Member
Power Member
Posts: 4064
Joined: 2007-05-21, 12:17 UTC

Post by *tuska »

Danke für die Lösungen!
@HolgerK Für mich funktionieren beide angebotenen Lösungen mit
@IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (start "" "D:\Daten\Programme\Total Commander\TCD_USB-Stick\TC32-64USB\TOTALCMD64.EXE") else (start "" "D:\Daten\Programme\Total Commander\TCD_USB-Stick\TC32-64USB\TOTALCMD.EXE")
und
cd "D:\Daten\Programme\Total Commander\TCD_USB-Stick\TC32-64USB"
@IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (start TOTALCMD64.EXE) else (start TOTALCMD.EXE)
Daten\Programme ist allerdings eine etwas gewöhnungsbedürftiger Pfad.
... Hier bewahre ich u.a. Programmdokumentationen auf, Links, Newsletter, etc.

@Camarillo Danke auch für Deine Lösung, es gibt hier mE noch das Problem mit dem Leerzeichen im Pfad. Da mir aber jetzt zwei Lösungen zur Verfügung stehen bitte nicht weiter bemühen.

@Dalai Ich verwende eine Lösung von HolgerK derzeit unter Windows XP - 32-bit - für mich gibt es dzt. keine Probleme.

Danke an alle, die sich mit dem Problem beschäftigt haben!
Gruß,
Karl
Post Reply