[GELÖST] Batch Datei via BlitzMax ausführen?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] Batch Datei via BlitzMax ausführen?

BeitragDo, Feb 16, 2012 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Hab da noch so ein Problemchen:
Also ich habe eine Batch datei erstellt, die mir einen Ordner im "Eigene Dateien" Ordner erstellt, Hier der Code: [AUSKLAPPEN]
@echo off
REM -----------------------------------------------------------------------------------------
REM Name: CreateUserDir.bat
REM Author: Marius Otto, CO2 Software
REM Date: 16.02.2012
REM -----------------------------------------------------------------------------------------
echo Creating Userdir.
mkdir "C:\Users\%USERNAME%\Documents\CO2 Software"
mkdir "C:\Users\%USERNAME%\Documents\CO2 Software\Undead Cut Down User Files"
echo Userdir created!
echo Register Userdir.
echo C:\Users\%USERNAME%\Documents\CO2 Software\Undead Cut Down User Files\ > usrdir.dat
echo Userdir Registered!
echo Starting Game...
REM --- END OF FILE -------------------------------------------------------------------------


Wenn man diesen Code "per Hand" ausführt klappt alles, der Ordner + Unterordner wird erstellt. Es wird auch eine weitere Datei erstellt, die den Pfad Enthält (siehe Zitat:
echo C:\Users\%USERNAME%\Documents\CO2 Software\Undead Cut Down User Files\ > usrdir.dat
)
Wenn ich die Datei aber über Blitzmax mit BlitzMax: [AUSKLAPPEN]
OpenURL("usrdir.bat")
öffne, dann werden zwar die Verzeichnisse erstellt, allerdings wird keine weitere Datei geschrieben, in der dessen pfade stehen.
2 Fragen:
1.) Warum?
2.) Wäre diese Batch - Datei auch auf anderen Windows-Systemen (Beispielsweise 98 oder 2000 oder gar XP) benutzbar (Sind die Pfade dann immernoch richtig?)
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Fr, Feb 17, 2012 14:57, insgesamt einmal bearbeitet

Addi

BeitragDo, Feb 16, 2012 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Vlt. wird sie nicht mit Administrator-Rechten ausgeführt (nur eine vermutung)
 

CO2

ehemals "SirMO"

BeitragDo, Feb 16, 2012 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann ich das denn irgendwie anders machen? Im grunde genommen ist mir das wichtigste am Batch, das man via %USERNAME% den namen des users herauskriegt... Gibt es sowas auch in Blitzmax? oder kann ich irgendwie einstellen, das die datei mit admin-rechten ausgeführt wird?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragDo, Feb 16, 2012 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst nicht davon ausgehen, das Windows auf C installiert ist...
BlitzMax: [AUSKLAPPEN]
Print(getenv_("SystemDrive"))
Print(getenv_("windir"))
Print(getenv_("username"))


Und statt OpenURL würde ich CreateProcess verwenden.
BlitzMax: [AUSKLAPPEN]
SuperStrict

Local output:String
Local process:TProcess = CreateProcess("test.bat")
While process.Status() '* Prozess arbeitet
Delay(20) '* Auf Prozess Warten...
If process.pipe.ReadAvail() > 0 Then
output:+process.pipe.ReadString(process.pipe.ReadAvail())
EndIf
Wend

Print("Output:")
Print(output)

Von der Rechtevergabe weiß ich allerdings auch nichts.

Edit
UserData sollte besser sein (WP: Environment variables)
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

CO2

ehemals "SirMO"

BeitragDo, Feb 16, 2012 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, habs jetzt mit folgendem Code gelöst: BlitzMax: [AUSKLAPPEN]
Local userdatafile:String = (getenv_("SystemDrive")) + "\Users\" + (getenv_("username")) + "\Documents\CO2 Software"
CreateDir(userdatafile)
CreateDir(userdatafile + "\Undead Cut Down User Files")

Damit geht es auch. Die Batch-Datei habe ich gelöscht, wie gesagt, es ging mir nur darum, einen Ordner unter "Eigene Dateien" zu erzeugen.
getenv_("userdata") Funktioniert nicht.

kann ich das auch unter anderen Windows-Systemen ohne Fehler zum laufen bringen?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

ZEVS

BeitragDo, Feb 16, 2012 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe WinXP (deutsche Version).
Dein Code ergibt:
Zitat:
C:\Users\User\Documents\CO2 Software

richtig:
Zitat:
C:\Dokumente und Einstellungen\User\Eigene Dateien\CO2 Software
(?)
Systemvariablen:
Code: [AUSKLAPPEN]
HOMEPATH=\Dokumente und Einstellungen\User
USERNAME=User
USERPROFILE=C:\Dokumente und Einstellungen\User

Eigene Dateien kriegst du über FileType raus.

ZEVS
 

CO2

ehemals "SirMO"

BeitragFr, Feb 17, 2012 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, unter Win 7 klappt auch folgender Code:
BlitzMax: [AUSKLAPPEN]
CreateDir((getenv_("USERPROFILE")) + "\Eigene Dateien\CO2 Software")

Es wird ebenfalls ein Ordner unter "Documents" erstellt... Da versteh' einer Microsoft Wink

Damit hat sich das Thema wohl geklärt, danke für die Hilfe!
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

DaysShadow

BeitragFr, Feb 17, 2012 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ab Windows Vista heißt Eigene Dateien intern immer Documents, "Eigene Dokumente" oder wie es auch immer heißen mag ist nur der Name der dir angezeigt wird.
Geh mal auf Eigene Dokumente und klick dann auf die Adressleiste oben, sodass du einen Pfad eingeben könntest.
Dort steht dann nämlich nicht mehr "Eigene Dokumente" sondern Documents.

Ist nicht so kompliziert wie es scheinen mag.
Blessed is the mind too small for doubt

BtbN

BeitragFr, Feb 17, 2012 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe meinen Eigene Dateien Ordner ausgelagert, d.h. da würde das dann auch Fehlschlagen.
Wie man allerdings direkt an den Documents-Pfad kommt, weiß ich nicht.

Propellator

BeitragFr, Feb 17, 2012 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Einen kleinen Nachtrag noch: Allgemein akzeptiert ist es, dass man Profilspezifische Spielerdaten nicht in Documents reinknallt, sondern in dessen Unterordner, "My Games". Dort befinden sich jedenfalls bei mir die meisten Speicherstände etc.
Der einzige Ordner im Ordner "Meine Spiele" stammt jedoch von "The Saboteur", wahrscheinlich von einem übereifrigen Übersetzer.

Leider gibt es jedoch keinen festgelegten Standard für solche Daten. Sad

MfG
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.
 

CO2

ehemals "SirMO"

BeitragFr, Feb 17, 2012 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@ DaysShadow:
Das verwirrende Daran ist ja nicht, das der Ordner "Documents" und nicht "Eigene Dokumente" heißt, sondern das der trotzdem noch über "Eigene Dateien" angesprochen werden kann... Folgende beiden Codes funktionieren unter Win 7:
BlitzMax: [AUSKLAPPEN]
CreateDir((getenv_("USERPROFILE")) + "\Eigene Dateien\CO2 Software")

und dieser funktioniert nur unter Win 7:
BlitzMax: [AUSKLAPPEN]
CreateDir((getenv_("USERPROFILE")) + "\Documents\CO2 Software")


@ BtbN:
Hm, ich weiß es nicht, hast du den Code schon ausprobiert?

@ Propellator:
BlitzMax: [AUSKLAPPEN]
CreateDir((getenv_("USERPROFILE")) + "\Eigene Dateien\My Games")
CreateDir((getenv_("USERPROFILE")) + "\Eigene Dateien\My Games\CO2 Software")

Wink
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

BtbN

BeitragFr, Feb 17, 2012 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Userprofile zeigt auf C:\Users\BtbN\
Documents liegt unter D:\Dokumente
Dein Code greift auf C:\Users\BtbN\Documents zu, was nicht existiert.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group