Ergebnis 1 bis 4 von 4
  1. #1
    Mitglied Avatar von vin97
    Registriert seit
    Dec 2008
    Ort
    DE, Trier
    Beiträge
    561
    Danksagungen
    5

    Question [BATCH] "SET /P"-Problem

    [BATCH] "SET /P"-Problem


    Vorwort:

    Spoiler: 

    Ich bin immer noch dabei mit Batch-Skripten Programme zu "schreiben" - zum Teil sogar sehr umfangreiche und sehr nützliche.
    Grade bin ich an einem Installer dran. Bis jetzt hab ich ihn komplett durchgetestet und Alles korigiert. Ich hab nur ein einzieges Problem, welches ich nicht lösen kann!


    Das Problem:

    Spoiler: 

    Bei meinem Programm gibt der Benutzer einen Pfad (mit Leerzeichen) ein (es funzt mit dem "SET /P"-Befehl), welcher dann als *.txt-Datei unter C:\ gespeichert wird. Dann wird ein anderes Batch-Skript gestartet. Da dieses jedoch den zuvor eingegebenen Pfad besitzen muss um die Aktion (bzw. Installation) richtig zu starten/durchzuführen, liest es ganz einfach den Inhalt der *.txt-Datei aus.
    Das Problem liegt dabei, dass die Variable für den eingegebenen Pfad am Ende immer noch ein Leerzeichen besitzt - daher kann das andere Skript natürlich nicht richtig installieren.


    Frage:

    Spoiler: 

    Wie kann man die Variable (bzw. die Eingabe vom Benutzer) ohne das Leerzeichen am Ende "setten"/einstellen?


    Ende:

    Spoiler: 

    Bitte antwortet schnell und sinnvoll.

    ...Vin97

  2. #2
    german-man
    Gast

    Standard Re: [BATCH] "SET /P"-Problem

    Sinnvoll wäre natürlich gewesen, wenn du die entsprechende Passage deines Codes gepostet hättest, um nicht die Glaskugel befragen zu müssen.

    Vermutlich ist es nicht die Eingabe mit SET /P die das verursacht, sondern die Umleitung in die Textdatei. Leerzeichen vor > oder >> werden mit übernommen. Also
    falsch:
    Code:
    set /p "input=Schreib was: "
    echo %input% >test.txt
    richtig:
    Code:
    set /p "input=Schreib was: "
    echo %input%>test.txt

  3. #3
    Mitglied

    (Threadstarter)

    Avatar von vin97
    Registriert seit
    Dec 2008
    Ort
    DE, Trier
    Beiträge
    561
    Danksagungen
    5

    Cool Danke!!!

    Danke. Jetzt funktioniert es!!!

    Ich habe ein Test-Skript geschrieben mit deinem Tipp.

    Hier ist das Skript:

    Spoiler: 

    Code:
    :Variablen-Test-1
    @echo off
    title Variablen-Test-1
    color 0f
    cls
    echo Gebe etwas ein!
    echo.
    echo Es wird unter "C:\Text.txt" gespeichert!
    echo.
    set /p TXT=
    cls
    echo %TXT%> C:\Text.txt
    cls
    echo Gespeichert!
    echo.
    echo Irgendwas druecken um ihren Text anzuzeigen!
    pause >nul
    cls
    for /f "delims=;" %%I in (C:\Text.txt) do @set Inhalt=%%I
    cls
    echo "%Inhalt%"
    echo.
    echo Druecke irgendwas zum Beenden!
    pause >nul
    exit


    !!!THREAD KANN GESCHLOSSEN WERDEN!!!

  4. #4
    german-man
    Gast

    Standard Re: [BATCH] "SET /P"-Problem

    Code:
    for /f "delims=;" %%I in (C:\Text.txt) do @set Inhalt=%%I
    Was, wenn deine Eingabe ein Semikolon beinhaltet hatte? Also besser "delims=".
    Da die Datei Text.txt aber nur aus einer Zeile besteht, gehts viel einfacher:
    Code:
    set /p Inhalt=<"C:\Text.txt"

  5.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •