1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Hilfe bei einer Batchdatei

Discussion in 'Programmieren' started by Muddi, Jul 25, 2006.

Thread Status:
Not open for further replies.
  1. Muddi

    Muddi Megabyte

    Hallo ihr Programmierer,

    Ich habe mal folgendes Programm geschrieben, dass die CZ-Models von Counter Strike durch die alten Models ersetzten soll, da diese besser sind. Es soll anderen die Arbeit erleichtern.:)
    Code:
    @echo off
    set choice=Wie heisst dein Steam Account?
    
    rd /s /q c:\Programme\Valve\Steam\SteamApps\[COLOR="Red"]SteamAcc[/COLOR]\counter-strike\cstrike_german\models\player
    xcopy  c:\player c:\Programme\Valve\Steam\SteamApps\[COLOR="Red"]SteamAcc[/COLOR]\counter-strike\cstrike_german\models\player\
    pause
    exit
    
    Die Eingabe soll SteamAcc ersetzten. Da ich ja nicht weiß wie die Steam Accs der anderen heißen.

    Ich hoffe jemand hat die Lösung.

    Gruß
    Muddi
     
  2. Muddi

    Muddi Megabyte

    OK, diese Fragesetllung ist nich sehr eindeutig. Ich erkläre es genauer was ich gerne hätte.:)
    Die wichtigen Dateien befinden sich normalerweise unter
    c:\Programme\Valve\Steam\SteamApps\<Name des Steamaccounts>\counter-strike\cstrike_german\models\player
    Da ich ja den Namen des Steamaccounts nicht kenne soll der User ihn ja in der set choice Zeile eingeben.

    Code:
    @echo off
    set choice=Wie heisst dein Steam Account?
    
    :: Danach kommt eine Eingabe von dem Benutzer. 
    ::Zum Beispiel: Muddi
    
    :: Danach sollen in diesen 2 Befehlszeilen
    :: [COLOR="Red"]SteamAcc[/COLOR] durch Muddi ersetzt werden. [COLOR="SeaGreen"]Wie heißen die richtigen Zeilen dafür?[/COLOR]
    
    rd /s /q c:\Programme\Valve\Steam\SteamApps\SteamAcc\counter-strike\cstrike_german\models\player
    
    :: Diese Zeile löscht das player Verzeichnis (Da drin liegen die alten Dateien)
    
    xcopy  c:\player c:\Programme\Valve\Steam\SteamApps\SteamAcc\counter-strike\cstrike_german\models\player
    
    :: Diese Zeile kopiert dann das neue Playerverzeichnis in den
    :: Ordner
    
    :: Damit das Programm soll dann diese Zeilen durchführen.
    
    rd /s /q c:\Programme\Valve\Steam\SteamApps\Muddi\counter-strike\cstrike_german\models\player
    xcopy  c:\player c:\Programme\Valve\Steam\SteamApps\Muddi\counter-strike\cstrike_german\models\player
     
  3. Ace Piet

    Ace Piet Computerversteher

    Falls choice in der BATch-Datei gesetzt ist, greift man auf deren Inhalt mit %choice% zu, ggfs. baut man noch Anführungszeichen drumrum, falls der Wert der Variablen Leerzeichen enthält. - Das wärs eigentlich schon.
    :jippie:


    @echo off
    set wahl=Dokumente und Einstellungen
    echo Inhalt der Variablen wahl:%wahl%

    REM --- geht gut
    dir h:\"%wahl%"

    REM --- nix gut weil 3 Worte
    dir h:\%wahl%


    Variante, wo der User nix in der BATch selber frickeln muss...


    @echo off
    REM --- ProgName: _WAHL1.BAT
    REM --- 1-ter Aufrufparameter
    echo Inhalt der Variablen: %1%

    REM --- geht gut
    dir h:\%1%\*.*



    Aufruf:
    H:\Dokumente und Einstellungen\Ace-Piet>_wahl1 "Dokumente und Einstellungen"


    erzeugt die Ausgabe:
    Inhalt der Variablen: "Dokumente und Einstellungen"
    Datenträger in Laufwerk H: ist P3B-XP-PV
    Volumeseriennummer: E836-74EA

    Verzeichnis von h:\Dokumente und Einstellungen

    21.06.2006 15:41 <DIR> .
    21.06.2006 15:41 <DIR> ..
    05.07.2006 15:37 <DIR> Ace-Piet
    17.10.2005 01:40 <DIR> All Users
    13.12.2004 03:08 <DIR> Gast
    29.12.2004 21:38 <DIR> Hupsi
    21.06.2006 15:41 <DIR> testadmin
    0 Datei(en) 0 Bytes
    7 Verzeichnis(se), 2.584.408.064 Bytes frei


    Dh. der User kann in Anführungszeichen seinen Acc.Namen als Parameter mitgeben...

    :idee:
    Gute Idee bei der ganzen Nummer wäre übrigens das Prüfen auf Existenz der Verzeichnisse...

    ______________

    PS.: Diese TestBATches liegen bei mir in ...\system32 , damit sie sicher im Ausführungspfad sind. Und deshalb haben sie auch ein "_" vornedran, damit ich sie schnell wieder löschen kann...
     
  4. Muddi

    Muddi Megabyte

    OK, :danke: Ace Piet.
    Alles klar. :happa: :jippie:
     
  5. Muddi

    Muddi Megabyte

    Also ich hab dann noch ne Frage: :)

    Um den Installationspfad von Steam in der Batch automatisch suchen zu lassen, habe ich mir folgendes überlegt:

    Der Installationspfad von Steam wird in der Zeichenfolge:
    HKLM\Software\Valve\Steam\Installpath
    angeben.

    Diese hat bei mir den Wert

    d:\Programme\Valve\Steam

    Also, wie geht das dann weiter. Der Wert soll in der Batch als Variable deklariert werden.

    Man kann den gesamten Steamschlüssel speichern lassen mit
    Code:
    reg export HKLM\Software\Valve\Steam pfad.reg
    ren pfad.reg pfad.txt
    Die pfad.txt sieht dann so aus:

    Code:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\Software\Valve\Steam]
    "Rate"="9999"
    [COLOR="Red"]"InstallPath"="D:\\Programme\\Valve\\Steam\\"[/COLOR]
    "cip"="DE"
    "ELP"=dword:00000000
    
    Ich habe hier letztens einen Thread gesehen, wo jemand aus einer Zeile in einer .txt Datei eine Varirable deklariert hat. In meinem Fall die rote.
    Aber ich weiß nicht mehr wie das dann genau funktioniert.
    :grübel:
     
Thread Status:
Not open for further replies.

Share This Page