Szukaj…


Wprowadzenie

Jedną przydatną funkcją plików wsadowych jest możliwość tworzenia z nimi plików. W tej sekcji pokazano, jak tworzyć pliki przy użyciu kodu wsadowego.

Składnia

  • echo (wpisz tutaj cokolwiek chcesz) >> (nazwa pliku)
  • echo (nazwa zmiennej) >> (nazwa pliku)

Uwagi

Jeśli plik istnieje, > zastąpi plik, a >> dopisze na końcu pliku. Jeśli plik nie istnieje, oba utworzą nowy plik.

Ponadto polecenie echo automatycznie dodaje nowy wiersz po łańcuchu.

Więc

echo 1 > num.txt
echo 1 > num.txt 
echo 2 >> num.txt 

utworzy następujący plik:

1
2

Nie to:

1 1 2

lub

1 2

Ponadto nie można po prostu zmodyfikować pojedynczej linii w pliku tekstowym. Musisz przeczytać cały plik, zmodyfikować go w kodzie, a następnie ponownie napisać do całego pliku.

Przekierowanie

Format:

[command] [> | >>] [filename]

> zapisuje dane wyjściowe polecenia [polecenie] w [nazwa pliku].

>> dołącza wynik działania polecenia [polecenie] do [nazwa pliku].

Przykłady:

  1. echo Hello World > myfile.txt zapisuje „Hello World” w myfile.txt

  2. echo your name is %name% >> myfile.txt dołącza „twoje imię to xxxx” do myfile.txt

  3. dir C:\ > directory.txt zapisuje katalog C: \ w katalogu.txt

Echo do tworzenia plików

Sposoby utworzenia pliku za pomocą polecenia 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)

Jeśli chcesz utworzyć plik za pomocą polecenia ECHO , w określonym katalogu na komputerze może wystąpić problem.

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)

Ale jak to robimy? Cóż, w rzeczywistości jest to bardzo proste ... Podczas wpisywania ścieżki lub nazwy pliku, która zawiera spację w nazwie, pamiętaj, aby używać „cudzysłowów”

ECHO Hello how are you? > "C:\Program Files\example.bat"
(This will create "example.bat" in the folder "Program Files")

Ale co, jeśli chcesz utworzyć plik, który będzie generował nowy plik?

ECHO message > file1.bat > example.bat

(example.bat is NOT going to contain "message > file1.bat")
example.bat will just contain "message"... nothing else

Jak to robimy? Do tego używamy symbolu ^ .

ECHO message ^> file1.bat > example.bat

(example.bat is going to contain "message > file1.bat")

To samo dotyczy innych rzeczy wsadowo

Następny krok wymaga znajomości zmiennych i instrukcji:

kliknij tutaj, aby dowiedzieć się o zmiennych | kliknij tutaj, aby dowiedzieć się o instrukcjach if i else

Zmienne:

SET example="text"
ECHO %example% > file.bat
(This will output "text" to file.bat)

jeśli nie chcemy, aby wyświetlał „tekst”, ale zwykły% example%, to napisz:

ECHO ^%example^% > file.bat
(This will output "%example%" to file.bat)

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

aby wypisać całą linię, robimy to samo co poprzednio.

IF ^%example^%=="Hello" ECHO True ^|^| ECHO False > file.bat

This will output:
IF %example%=="Hello" ECHO True || ECHO False

Jeśli zmienna jest równa „Hello”, to powie „True”, ELSE powie „False”

Zapisywanie wyników wielu poleceń

Za pomocą wielu poleceń ECHO do utworzenia pliku wsadowego:

(
  echo echo hi, this is the date today
  echo date /T
  echo echo created on %DATE%
  echo pause >nul
)>hi.bat

Interpreter poleceń traktuje całą sekcję w nawiasie jako pojedyncze polecenie, a następnie zapisuje wszystkie dane wyjściowe w hi.bat .

hi.bat zawiera teraz:

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow