SORU
16 HAZİRAN 2011, PERŞEMBE


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.

How can you echo a newline in batch files?

CEVAP
16 HAZİRAN 2011, PERŞEMBE


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%LFho !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
)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Engadget

    Engadget

    18 EYLÜL 2006
  • jbignacio

    jbignacio

    13 Mart 2006
  • MofoHifi Records

    MofoHifi Rec

    15 HAZİRAN 2006