Yanıtlar:
Bu daha önce hiç görmediğim ilginç bir çözüm. Anlatmaya çalışayım:
echo %path%
. Bu, tüm dizinleri noktalı virgülle ( ;
) ayrılmış tek bir satıra yazdırır%path:a=b%
tüm a
karakterlerin yerini alacak olanb
echo.
yeni bir satır yazdırmak için kullanılır&
komutları ayırmak için kullanılır, örneğin echo line1&echo line2
iki satır yazdıracak;
hiçbir şey olmadan değiştir ve sonra yeni bir satır bas' olarak yorumlanır. Bununla ilgili herhangi bir belge bulamıyorum, bu yüzden sadece yorumum. Açıkçası, bunun mümkün olduğunu bile bilmiyordum, ama işte gidiyorsun. GÜNCELLEME Bu adımın yorumum kapalı gibi görünüyor ve wizzwizz4 tarafından daha iyi açıklanmaktadır .echo path
miyiz? %% değişkenler için kullanılıyor mu?
set greeting=Hello
ve sonra echo %greeting%
. Kafa karıştırıcı bir PATH
şekilde hem bir komut hem de değişken olabilir, bu yüzden komutu yazmak path
veya echo %path%
aynı sonucu elde etmek.
$PATH
Örneğin bash gibi diğer dilleri kullanın .
echo.
"yeni satır basma komutu" değildir. Bu, Microsoft'un Windows NT için komut yorumlayıcısıdırcmd
; ve echo.
sadece bir yol elemanını basma komutu , eğer yol elemanı boşsa, diğer fonksiyonlara geçmemesini sağlarecho
. İlk echo
gerçekten bir echo.
de olmalı .
Bu komut satırı değişken ikame kullanıyor. %path:;=&echo.%
" %path%
, ancak hepsini ;
s ile değiştir " anlamına gelir &echo.
. Bunun anlamı şununla set path=C:\Windows\System32;C:\Windows\;;C:\Python37;
:
echo %path:;=&echo.%
dönüşür:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
Yana &
bir komut ayırıcı olup, bu eşdeğerdir:
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
DOS Toplu işinin tuhaflıkları nedeniyle, ondan sonra hiçbir şeyin olmadığı durumlar dışındaecho.
aynıdır . Bu durumda, açık veya kapalı olup olmadığını söylemek yerine, hiçbir şeyi yazdırmaz . Bu çıktı yapacak:echo
ECHO
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
Gerçekten, a ile başlayan echo.%path:;=&echo.%
durumu hesaba katmak gerekir , ancak bu komut zaten çok zekice.%PATH%
;
Ayrıntılı detaliaslara girmek yerine , gerçekten echo(
kullanılmalı echo.
. Bunun nedeni echo.
, çağrılan bir dosyanız olduğunda sorun yaşayabilir echo
ve yavaş çalıştığı için her çalıştırıldığında diski kontrol etmesi gerekir ( %CD%
ve aynı zamanda hepsini de düşünüyorum %PATH%
). (Windows'un bir kopyasına sahip değilim, bu yüzden kendim kontrol edemiyorum; dosyanın varlığının etkileyeceği %CD%
herhangi bir yerde mi, yoksa ne işe yarıyor?)%PATH%
echo
echo.
echo)
, ancak gerçekten hatırlamıyorum. ;-(
echo.
insanların yıllar önce en çok dolaşımda olduğu kişi. Pek çok kitaptan biridir. Verimlilik sorun değil. Çeşitli dosyalar olduğunda tuhaf davranışlar var. cmd
OS / 2'de 16 bitlik bir 32 bit değiştirme yazarken , bu noktalama karakterlerinde komut adlarını kırmak ve bu oldukça düzensiz ayrıştırma davranışı kasıtlı olarak çoğaltmadığım ve belgelendirdiğim şeylerden biri farklılıkların listesi. Bunun echodot
yerine harici bir komut verdim , hangisinin echo.
istenildiği gibi takma adı olabilir .
echo(
, bu tek güvenli sürümdür.
echo.
çalışmayabilir .