batch-file
Redirection d'entrée et de sortie
Recherche…
Syntaxe
- [commande] [[> | >> | <| 2> | 2 >>] fichier]
- [[> | >> | <| 2> | 2 >>] fichier] [commande]
Paramètres
Paramètre | Détails |
---|---|
commander | Toute commande valide. |
> | Ecrivez STDOUT dans un fichier. |
>> | Ajouter STDOUT au fichier. |
< | Lire le fichier sur STDIN . |
2> | Ecrivez STDERR dans un fichier. |
2>> | Ajouter STDERR au fichier. |
fichier | Le chemin d'accès à un fichier. |
Remarques
- Vous pouvez ajouter autant de redirections que vous le souhaitez, tant que le symbole et le fichier de redirection restent ensemble et dans le bon ordre.
Un exemple...
@echo off
setlocal
set /p "_myvar=what is your name?"
echo HELLO!>file.txt
echo %_myvar%!>>file.txt
echo done!
pause
type file.txt
endlocal
exit
Maintenant, file.txt ressemble à:
HELLO!
John Smith!
(en supposant que vous avez tapé John Smith
comme votre nom.)
Maintenant, la console de votre fichier de commandes ressemble à:
what is your name?John Smith
done!
Press any key to continue...
HELLO!
John Smith!
(et il devrait sortir si rapidement que vous ne pourrez plus rien voir après l'invite Press any key to coninue...
)
Redirection du caractère spécial avec extension retardée activée
Cet exemple fait écho au caractère spécial !
dans un fichier. Cela ne fonctionnerait que lorsque DelayedExpansion est désactivé. Lorsque l'extension différée est activée, vous devrez utiliser trois carets et un point d'exclamation comme ceci:
@echo off
setlocal enabledelayedexpansion
echo ^^^!>file
echo ^>>>file
goto :eof
^> is the text
>> is the redirect operator
pause
endlocal
exit /b
Ce code fera écho au texte suivant dans le fichier
!
>
comme
^^^ escapes the ! and echos it into the file
^> escapes the > and echos it into the file
Ecrire dans un fichier
@echo off
cls
echo Please input the file path, surrounded by "double quotation marks" if necessary.
REM If you don't want to redirect, escape the > by preceding it with ^
set /p filepath=^>
echo Writing a random number
echo %RANDOM% > %filepath%
echo Reading the random number
type %filepath%
REM Successive file writes will overwrite the previous file contents
echo Writing the current directory tree:
> %filepath% tree /A
echo Reading the file
type %filepath%
REM nul is a special file. It is always empty, no matter what you write to it.
echo Writing to nul
type %windir%\win.ini > nul
echo Reading from nul
type nul
echo Writing nul's contents to the file
type nul > %filepath%
echo Reading the file
type %filepath%
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow