CMD/BAT - jak wstawic pustą linię z potoku do pliku?


(XOR) #1

Witam,

Czy w skrypcie BAT można jakoś wstawić pustą linię do pliku używając przekierowania?

Zależy mi na czymś takim

pusta linia

====

wynik komendy

pusta lnia

===

wynik komendy

itd

W skrypcie mam:

dir /b ścieżka >> plik.log && echo ===>> plik.log

Niestety, gdy na początku chcę dodać pustą linię: echo. >> plik.log , czyli

echo. >> plik.log && dir /b ścieżka >> plik.log && echo ===>> plik.log

otrzymuję w pliku tekstowym:

ECHO jest wyłączone

wynik komendy (dir /b)

===

Nie rozumiem czemu pojawia się komunikat ECHO jest wyłączone zamiast pustej linii.

 

 

 

 

 


(bachus) #2

Spróbuj zwykłe:

echo. plik.txt

 


(XOR) #3

Tak jak pisałem powyżej tak robiłem, ale dostaję w pliku tekstowym zamiast pustej linii komunikat: ECHO jest wyłączone.


(drunkula) #4

Zapomniałeś o kropce.


(XOR) #5

Tak jak w pierwszym poście. Kropka jest.


(bachus) #6

Na początku batcha jest coś w stylu “@echo off”?


(XOR) #7

Tak, jest i chciałbym, żeby nie było widać komend w trakcie wykonywania skryptu. Poza tym, gdy daję echo on zamiast pustej linii mam…ECHO jest włączone :slight_smile: A jak to jest u ciebie?


(drunkula) #8

To na prawdę powinno działać, zobacz:

d:\VDI\Win10>type runme.bat
@echo off
echo. >> plik.log && dir /b >> plik.log && echo ===>> plik.log
d:\VDI\Win10>runme.bat

d:\VDI\Win10>type plik.log

plik.log
runme.bat
Win10
===

Zarówno na XP, jak i WIn 7 wynik taki sam. Pozbyłem się ścieżki, ale nie ma ona znaczenia - to i tak inna linia.


(XOR) #9

Działa, ale okazuje się, że problem pochodzi z innej części “kodu”.


(drunkula) #10

Na moje, to replace przyjmuje wartość NULL, ergo przekazujesz echo bez kropki.


(XOR) #11

Ale również robi co ma robić ponieważ usuwa faktycznie ciąg liter “zdjecia”.

http://ss64.com/nt/syntax-replace.html


(drunkula) #12

Ech… leniuszek, 30 minut czekania zamiast 30 sekund szukania ;-)

IF DEFINED variable command

The DEFINED conditional works just like EXISTS except it takes an environment variable name and returns true if the environment variable is defined.

edit: tak samo możesz z IF NOT […] ECHO “Brak wyników”. Więcej info pod IF /?