Açıklar nasıl dos-toplu değişken çalışır hack yeni satır | Netgez.com
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%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
)

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Stanislav Petrov

    Stanislav Pe

    7 ÅžUBAT 2009
  • TechRax

    TechRax

    21 EYLÃœL 2009
  • The Platform

    The Platform

    14 HAZÄ°RAN 2006