tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1006
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    froesch froesch ist offline Rookie
    Registriert seit
    May 2003
    Beiträge
    6
    ich schreibe mir gerade eine batch um einige files zu kopieren. so langsam weiß ich nicht mehr weiter...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    @ECHO off
    cls
     
    :: pfade werde zugewiesen
     
    :: quelle:
    set path1=%~dp0%
    echo.
     
    :: ziel:
    echo Target folder for the files to be copied (eg D:\test 1\):
    set /p path2=D:\test 1\
    echo.
     
    :: zu kopierende dateien werden uebertragen
     
    echo Files will now be copied. please wait...
    echo.
    xcopy "%path1%Data\Win32\Loc" "%path2%Data\Win32\Loc" /Y /I /Q
    xcopy "%path1%Update\Patch\Data\Win32\Loc" "%path2%Update\Patch\Data\Win32\Loc" /Y /I /Q
     
    :: aufräumen
     
    del "%path2%\Data\Win32\Loc\ru.sb"
    del "%path2%\Data\Win32\Loc\ru.toc"
    del "%path2%\Update\Patch\Data\Win32\Loc\ru.sb"
    del "%path2%\Update\Patch\Data\Win32\Loc\ru.toc"

    hierbei sollen zuerst einige dateien kopiert werden und danach alte dateien mit anderem namen gelöscht werden. weder xcopy noch del scheinen mit den variablen der pfade klarzukommen
    Geändert von froesch (28.10.11 um 13:38 Uhr)
     
    cy@ froesch

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Parameter haben (im Gegensatz zu Variablen) nur ein %.
    Code :
    1
    
    set path1=%~dp0
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    froesch froesch ist offline Rookie
    Registriert seit
    May 2003
    Beiträge
    6
    Code :
    1
    
    set /p path2=D:\test 1\

    also ich habe rausgefunden, dass diese variable überhaupt nicht behalten wird. als echo wird die variable jedenfalls nicht ausgegeben.

    sobald ich /p entferne geht alles reibungslos. nur fraglich ist nun wie ich die eingabeaufforderung jetzt manage?
    Geändert von froesch (28.10.11 um 15:38 Uhr)
     
    cy@ froesch

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von froesch Beitrag anzeigen
    Code :
    1
    
    set /p path2=D:\test 1\

    also ich habe rausgefunden, dass diese variable überhaupt nicht behalten wird. als echo wird die variable jedenfalls nicht ausgegeben.
    Naja, was gibst du denn an dem Prompt ein?

    Wenn du nichts eingibst, bekommt die Variable auch keinen Wert.

    Gruß

    PS: Du weißt was das /p bei set macht?
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    froesch froesch ist offline Rookie
    Registriert seit
    May 2003
    Beiträge
    6
    das p steht doch nur für den promt oder nicht? sobald ich also an der stelle (z.b. bei default) enter drücke sollte der angegebene pfad doch auch als variable gelten oder nicht? oder würde das bedeuten ich muß D:\test 1\ beim prompt löschen und nochmals selber eintippen dass es als eingabe für die variable anerkannt wird?
    Geändert von froesch (28.10.11 um 16:30 Uhr)
     
    cy@ froesch

  6. #6
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von froesch Beitrag anzeigen
    das p steht doch nur für den promt oder nicht? sobald ich also an der stelle (z.b. bei default) enter drücke sollte der angegebene pfad doch auch als variable gelten oder nicht? oder würde das bedeuten ich muß D:\test 1\ beim prompt löschen und nochmals selber eintippen dass es als eingabe für die variable anerkannt wird?
    Das /p bei set führt dazu, das set sich anders verhält als normalerweise.

    Es zeigt einfach den Text hinter dem = Zeichen als "Prompt" an. Der Wert der Variablen wird auf den Wert gesetzt, den der Benutzer (also du) hinter diesem Prompt (den man im übrigen nicht löschen kann) eingibt.

    Bsp:
    Code :
    1
    2
    
    set /p eingabe=Bitte geben sie einen Text ein: 
    echo.sie haben %eingabe% eingegeben.
    Ausführung:
    Code :
    1
    2
    
    Bitte geben sie einen Text ein: Bla, bla, bla
    sie haben Bla, bla, bla eingegeben.
    Was willst du denn erreichen? Willst du einen Wert vom Benutzer abfragen? Mit einem Standardwert belegen?
    Code :
    1
    2
    
    set /p eingabe=Zielpfad (d:\test 1) 
    if not defined eingabe set eingabe=d:\test 1
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  7. #7
    froesch froesch ist offline Rookie
    Registriert seit
    May 2003
    Beiträge
    6
    jepp genau so hatte ich das in etwa vor. somit macht mir das später die installation meines russischen battlefield 3 nun einfacher mit dem language changer. thx

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    
    @ECHO off
    cls
     
    :: quelle:
    set path1=%~dp0
    echo.
     
    :: ziel:
    echo Target folder for the files to be copied
    echo Default is C:\Program Files (x86)\Origin Games\Battlefield 3
    echo if you have changed installationpath change here or press enter for default
    echo Hint: without slash at the end when editing here!
    set /p path2=
    if not defined path2 set path2=C:\Program Files (x86)\Origin Games\Battlefield 3
    echo.
    echo Files will now be copied to
    echo %path2%
    echo please wait...
    echo.
    xcopy "%path1%Data\Win32\Loc" "%path2%\Data\Win32\Loc" /Y /I /Q /J
    xcopy "%path1%Update\Patch\Data\Win32\Loc" "%path2%\Update\Patch\Data\Win32\Loc" /Y /I /Q
    copy "%path1%GDFBinary_en_US.dll" "%path2%\GDFBinary_en_US.dll" /Y
    cls
    echo.
    echo deleting old russian language files
    echo.
    del "%path2%\Data\Win32\Loc\ru.sb"
    del "%path2%\Data\Win32\Loc\ru.toc"
    del "%path2%\Update\Patch\Data\Win32\Loc\ru.sb"
    del "%path2%\Update\Patch\Data\Win32\Loc\ru.toc"
    echo.
    echo If you get an error these files are already deleted.
     
    echo.
    :start
    ECHO Auswahl
    ECHO 1. x64
    ECHO 2. x32
    set /p choice=Type the number for your system:
    if not '%choice%'=='' set choice=%choice:~0,1%
    if '%choice%'=='1' goto x64
    if '%choice%'=='2' goto x32
    ECHO "%choice2%" is not valid please try again
    ECHO.
    goto start
     
    :x64
    ECHO x64 registry keys will be written now
    set path2=D:\origin games\Battlefield 3
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Electronic Arts\Battlefield 3" /v "Locale" /t REG_SZ /d "en" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Electronic Arts\Battlefield 3" /v "Language" /t REG_SZ /d "English" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\EA Games\Battlefield 3" /v "Locale" /t REG_SZ /d "en_US" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Origin Games\DGR01609244" /v "Locale" /t REG_SZ /d "en_US" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\EA Games\Battlefield 3" /v "GDFBinary" /t REG_SZ /d "%path2%\GDFBinary_en_US.dll" /f
    goto end
     
    :x32
    ECHO x32 registry keys will be written now
    REG ADD "HKLM\SOFTWARE\Electronic Arts\Battlefield 3" /v "Locale" /t REG_SZ /d "en" /f
    REG ADD "HKLM\SOFTWARE\Electronic Arts\Battlefield 3" /v "Language" /t REG_SZ /d "English" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\EA Games\Battlefield 3" /v "Locale" /t REG_SZ /d "en_US" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Origin Games\DGR01609244" /v "Locale" /t REG_SZ /d "en_US" /f 
     
    goto end
     
    :end
     
    echo have a nice day!
    echo froesch
     
    pause
    exit
     
    cy@ froesch

Ähnliche Themen

  1. Abfragen und Variablen in einer batch-Datei
    Von shareware im Forum Microsoft Windows
    Antworten: 5
    Letzter Beitrag: 08.06.10, 02:53
  2. 3 Variablen mit Batch vergleichen
    Von FaSi_David im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 24.07.08, 17:29
  3. download mit batch + xcopy
    Von hornet1410 im Forum Sonstige Sprachen
    Antworten: 3
    Letzter Beitrag: 24.07.06, 14:10
  4. Batch: Variablen in For schleife updaten
    Von Daemonic im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 22.09.05, 16:10
  5. XCopy Problem
    Von trabantdeluxe im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 23.08.03, 09:28