batch-file
Tworzenie plików za pomocą usługi Batch
Szukaj…
Wprowadzenie
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:
echo Hello World > myfile.txt
zapisuje „Hello World” w myfile.txtecho your name is %name% >> myfile.txt
dołącza „twoje imię to xxxx” do myfile.txtdir 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