batch-file
Создание файлов с использованием пакета
Поиск…
Вступление
Синтаксис
- echo (введите здесь все, что захотите) >> (filename)
- echo (имя переменной) >> (имя файла)
замечания
Если файл существует, >
перезапишет файл и >>
добавит его в конец файла. Если файл не существует, оба будут создавать новый файл.
Кроме того, команда echo
автоматически добавляет новую строку после вашей строки.
Так
echo 1 > num.txt
echo 1 > num.txt
echo 2 >> num.txt
создаст следующий файл:
1
2
Не это:
1 1 2
или же
1 2
Кроме того, вы не можете просто изменить одну строку в текстовом файле. Вы должны прочитать весь файл, изменить его в своем коде, а затем снова написать весь файл.
Перенаправление
Формат:
[command] [> | >>] [filename]
>
сохраняет вывод [команды] в [имя_файла].
>>
добавляет вывод [команды] в [имя_файла].
Примеры:
echo Hello World > myfile.txt
сохраняет «Hello World» в файл myfile.txtecho your name is %name% >> myfile.txt
добавляет «ваше имя xxxx» в файл myfile.txtdir C:\ > directory.txt
сохраняет каталог C: \ to directory.txt
Эхо для создания файлов
Способы создания файла с помощью команды echo:
ECHO. > example.bat (creates an empty file called "example.bat")
ECHO message > example.bat (creates example.bat containing "message")
ECHO message >> example.bat (adds "message" to a new line in example.bat)
(ECHO message) >> example.bat (same as above, just another way to write it)
Если вы хотите создать файл с помощью команды ECHO
, в определенном каталоге на вашем компьютере может возникнуть проблема.
ECHO Hello how are you? > C:\Program Files\example.bat
(This will NOT make a file in the folder "Program Files", and might show an error message)
Но тогда как мы это делаем? Ну это на самом деле очень просто ... При вводе пути или имени файла, в котором есть пробел, включенный в его имя, не забудьте использовать «кавычки»,
ECHO Hello how are you? > "C:\Program Files\example.bat"
(This will create "example.bat" in the folder "Program Files")
Но что делать, если вы хотите создать файл, который выводит новый файл?
ECHO message > file1.bat > example.bat
(example.bat is NOT going to contain "message > file1.bat")
example.bat will just contain "message"... nothing else
Тогда как мы это сделаем? Для этого мы используем символ ^
.
ECHO message ^> file1.bat > example.bat
(example.bat is going to contain "message > file1.bat")
То же самое касается других вещей в партии
Следующий шаг требует, чтобы вы знали о переменных и операторах:
нажмите здесь, чтобы узнать о переменных | нажмите здесь, чтобы узнать о операторах if и else
Переменные:
SET example="text"
ECHO %example% > file.bat
(This will output "text" to file.bat)
если мы не хотим, чтобы он выводил «текст», а просто показывал% example%, тогда пишите:
ECHO ^%example^% > file.bat
(This will output "%example%" to file.bat)
Заявления IF / ELSE:
ELSE statements are written with "pipes" ||
IF ^%example^%=="Hello" ECHO True || ECHO False > file.bat
(example.bat is going to contain "if %example%=="Hello" echo True")
[it ignores everything after the ELSE statement]
для вывода всей строки, мы делаем то же, что и раньше.
IF ^%example^%=="Hello" ECHO True ^|^| ECHO False > file.bat
This will output:
IF %example%=="Hello" ECHO True || ECHO False
Если переменная равна «Hello», тогда она скажет «True», ELSE скажет «False»,
Сохранение вывода многих команд
Использование многих команд ECHO
для создания пакетного файла:
(
echo echo hi, this is the date today
echo date /T
echo echo created on %DATE%
echo pause >nul
)>hi.bat
Командный интерпретатор рассматривает весь раздел в скобках как одну команду, а затем сохраняет весь вывод в hi.bat
.
hi.bat
теперь содержит:
echo hi, this is the date today
date /T
echo created on [date created]
pause >nul