Açıklar nasıl dos-toplu değişken çalışır hack yeni satır
Birisi bunun nasıl çalıştığını bana açıklayabilir mi lütfen?
@echo off
REM Creating a Newline variable (the two blank lines are required!)
set NLM=^
set NL=^^^%NLM%%NLM%^%NLM%%NLM%
REM Example Usage:
echo There should be a newline%NL%inserted here.
yayan:
There should be a newline
inserted here.
CEVAP
Hile şapka davranışı kullanın.
Ayrıca Long commands split over multiple lines in Vista/DOS batch (.bat) file açıkladı
Şapka bir sonraki karakter için bir kaçış karakteri veya satır sonunda çok satırlı karakter olarak kullanılır, ama bu neredeyse aynıdır.
Satır sonu basit kaçar sonraki karakter, bu durumda <Linefeed>
, ama orada gizli bir özellik, böylece kaçan karakter <LF>
bunu göz ardı edilir ve bir sonraki karakter okuma ve kaçtı, ama bu firma, doğal taş konusunda olacak hep kaçtı, hatta olur da bir <LF>
.
Åžimdi anlayabiliyorum
set NLM=^
rem Two empty lines are required here
NLM-DeÄŸiÅŸken <LF>
tam bir karakter içeriyor
Ama eÄŸer echo Line1%NLM%Line2
ile kullanmaya çalışırsanız başarısız, çözümleyici <LF>
tek bir ayrıştırma durur gibi.
Ama bu çalışıyor
echo Line1^
Line2
Hattına kaçak bir yeni satır eklemem gerekiyor, NL-Değişken.
NL-Değişken sadece üç karakterden oluşmaktadır.
NL=^<LF><LF>
Ve eÄŸer bu geniÅŸletilmiÅŸ ÅŸapka sonra <LF>
yoksayılacak ilk olarak sadece <LF>
kaçtı oluşturur.
Btw. Benim görüşüme göre, çok daha kolay bir şey kaçmaya gerek yok gibi gecikmeli genişleme ile hat beslemeleri kullanın.
setlocal EnableDelayedExpansion
set NLM=^
echo Line1!NLM!Line2
DÜZENLEME:Yararlı <LF>
kullanmak için bazı ipuçları ekleyin
1) echo
bir yeni satır olarak Kullanabilirsiniz
setlocal EnableDelayedExpansion
set LF=^
echo Line1!LF!Line2
2) parantez bloğu komutları ayırmak için Kullanın
setlocal EnableDelayedExpansion
set LF=^
(
echo Line1%LF%set x=4%LFìho !x!%LF%
)
3) (yaklaşık) EOL-chararcter /F döngü İÇİN boş Oluşturun
<LF>
hat ayırıcı olarak <LF>
bir EOL boş bir tane daha aynı.
FOR /F ^"eol^=^
delims^=^" %%a in (myFile.php) do echo %%a
4) /F döngü İÇİN bir bölme metin için VARSA Kullanın
setlocal EnableDelayedExpansion
set LF=^
rem ** Two empty lines required
set "var=Content1;Content2"
FOR /F "delims=" %%a in ("%var:;=!LF!%") do (
echo %%a
)
Nasıl toplu dosyalarında bir yeni satı...
Nasıl bir karakter yerine Vim bir yeni...
Nasıl bir yeni satır (\n) sed kullanar...
Nasıl baskı yeni satır veya boşluk olm...
Nasıl platform bağımlı bir yeni satır ...