batch-file
Перенаправление ввода и вывода
Поиск…
Синтаксис
- [команда] [[> | >> | <| 2> | 2 >>] файл]
- [[> | >> | <| 2> | 2 >>] файл] [команда]
параметры
параметр | подробности |
---|---|
команда | Любая действительная команда. |
> | Запись STDOUT в файл. |
>> | Добавить STDOUT в файл. |
< | Прочитайте файл в STDIN . |
2> | Напишите файл STDERR в файл. |
2>> | Добавьте файл STDERR в файл. |
файл | Путь к файлу. |
замечания
- Вы можете добавить столько разных перенаправлений, сколько хотите, до тех пор, пока символ и файл перенаправления остаются вместе и в правильном порядке.
Пример...
@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
Теперь file.txt выглядит так:
HELLO!
John Smith!
(предполагая, что вы набрали имя John Smith
как ваше имя).
Теперь консоль командного файла выглядит так:
what is your name?John Smith
done!
Press any key to continue...
HELLO!
John Smith!
(и он должен выйти так быстро, что вы не сможете ничего увидеть после подсказки. Press any key to coninue...
)
Перенаправление специального символа с включенным задержанным расширением
Этот пример повторяет особый характер !
в файл. Это будет работать только тогда, когда DelayedExpansion отключен. При включенном замедленном расширении вам нужно будет использовать три каретки и восклицательный знак следующим образом:
@echo off
setlocal enabledelayedexpansion
echo ^^^!>file
echo ^>>>file
goto :eof
^> is the text
>> is the redirect operator
pause
endlocal
exit /b
Этот код будет отображать следующий текст в файл
!
>
как
^^^ escapes the ! and echos it into the file
^> escapes the > and echos it into the file
Запись в файл
@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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow