Wie kann ich die Nummer 2 aus einem Batch-Skript in eine Datei übertragen?
Das funktioniert nicht:
Echo 2>> file.txt
weil 2>>
ist ein spezieller Befehl. :(
Wie kann ich die Nummer 2 aus einem Batch-Skript in eine Datei übertragen?
Das funktioniert nicht:
Echo 2>> file.txt
weil 2>>
ist ein spezieller Befehl. :(
Antworten:
Verwenden Sie (ECHO 2)>>file.txt
. Dies wird 2
ohne Leerzeichen ausgegeben .
Wenig bekannte Funktion: Der Umleitungsoperator kann überall auf der Linie hingehen.
>>file.txt echo 2
echo ^2>>file.txt
scheint für mich zu arbeiten.
echo.2>>text.txt
Ja, es ist komisch.
,;=(
. Dieser echo.hello(you2>>text.txt
scheitert
echo.
könnte fehlschlagen, wenn sich echo.
im aktuellen Verzeichnis eine Datei mit dem Namen (keine Erweiterung) befindet. Verwenden Sie diese also besser echo/
...
eine andere Methode
echo>>file.txt 2
Oder Sie können die verzögerte Erweiterung verwenden
setlocal EnableDelayedExpansion
set "var=2"
echo(!var!>> file.txt
Wenn Sie ein genaues Schreiben benötigen, verwenden Sie diesen Befehl
(ECHO |set /p=2)>>file.txt
Der Befehl von DMan erzeugt einen Zeilenumbruch von 0x0D0A hinter der "2".
(echo | set /p dummyName="2") > file.txt
( Quelle ) verwenden.
< nul set /P ="2" > file.txt
ErrorLevel
1
(call )
!
Um eine Zahl ohne Zeilenumbruch in eine Datei zu schreiben, können Sie Folgendes verwenden:
cmd /C set /A "2">file.txt
Dies funktioniert, da set /A
das (letzte) Ergebnis (ohne Zeilenumbruch) zurückgegeben wird, wenn es im Kontext der Eingabeaufforderung ausgeführt wird (daher direkt ausgeführt wird cmd.exe
).
Wenn Sie trotzdem an der Eingabeaufforderung arbeiten, können Sie einfach Folgendes verwenden:
set /A "2">file.txt
Obwohl Sie dies nicht in einer Batchdatei verwenden können, benötigen Sie das Extra cmd /C
, um den richtigen Ausführungskontext zu erzwingen.
Natürlich kann dies natürlich nur Zahlen oder genau gesagt vorzeichenbehaftete 32-Bit-Ganzzahlen ausgeben.
Basierend auf dieser Antwort, wenn sich jemand fragt, wie das geht:
echo "command1 && command2" > file.txt
ohne qoutes file.txt
dann machst du es so:
echo command1 ^&^& command2 > file.txt
Getestet unter Windows Server 2003.