Поиск…


Вступление

Одна из полезных функций пакетных файлов - это возможность создавать файлы с ними. В этом разделе показано, как создавать файлы с использованием пакетного кода.

Синтаксис

  • 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]

> сохраняет вывод [команды] в [имя_файла].

>> добавляет вывод [команды] в [имя_файла].

Примеры:

  1. echo Hello World > myfile.txt сохраняет «Hello World» в файл myfile.txt

  2. echo your name is %name% >> myfile.txt добавляет «ваше имя xxxx» в файл myfile.txt

  3. dir 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow