Jawaban:
Itu solusi menarik yang belum pernah saya lihat sebelumnya. Biarkan saya mencoba menjelaskan:
echo %path%. Ini akan mencetak semua direktori pada satu baris yang dipisahkan dengan titik koma ( ;)%path:a=b%yang akan menggantikan semua akarakter denganbecho. digunakan untuk mencetak baris baru&digunakan untuk memisahkan perintah, misalnya echo line1&echo line2akan mencetak dua baris;dengan yang tidak ada, lalu cetak baris baru'. Saya tidak dapat menemukan dokumentasi tentang ini, jadi itu hanya interpretasi saya. Terus terang, saya bahkan tidak tahu itu mungkin, tapi begitulah. UPDATE Penafsiran saya tentang langkah ini tampaknya tidak aktif, dan lebih baik dijelaskan oleh wizzwizz4 .echo path? Apakah %% digunakan untuk variabel?
set greeting=Hellolalu echo %greeting%. Secara membingungkan, PATHkebetulan merupakan perintah dan variabel, jadi ketikkan perintah path, atau echo %path%akan memiliki hasil yang sama.
$PATHmisalnya.
echo.bukan "perintah untuk mencetak baris baru". Ini adalah Microsoft command interpreter untuk Windows NT, cmd; dan echo.hanya perintah untuk mencetak elemen path memastikan bahwa jika elemen path kosong itu tidak beralih ke fungsionalitas lainecho . Yang pertama echobenar-benar harus echo.terlalu.
Ini menggunakan substitusi variabel baris perintah. %path:;=&echo.%berarti " %path%, tetapi ganti semua ;dengan &echo.". Ini berarti bahwa, dengan set path=C:\Windows\System32;C:\Windows\;;C:\Python37;:
echo %path:;=&echo.%
menjadi:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
Karena &pemisah perintah, ini setara dengan:
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
Karena kebiasaan DOS Batch, echo.identik dengan echo kecuali ketika tidak ada setelahnya. Jika itu masalahnya, ia tidak akan mencetak apa-apa, alih-alih memberi tahu Anda apakah ECHOhidup atau mati. Ini akan menghasilkan:
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
Sungguh, harus echo.%path:;=&echo.%memperhitungkan kasus di mana %PATH%dimulai dengan a ;, tetapi perintah ini cukup pintar pula.
Masuk ke detail detasia, benar echo( - benar harus digunakan sebagai ganti echo.. Ini karena echo.dapat memiliki masalah ketika Anda memiliki file yang dipanggil echo, dan lambat karena harus memeriksa disk ( %CD%dan saya pikir juga semuanya %PATH%) setiap kali dijalankan. (Saya tidak memiliki salinan Windows sehingga saya tidak dapat memeriksanya sendiri; apakah hanya %CD%atau di mana saja di mana %PATH%kehadiran echofile akan mempengaruhi echo., dan apa fungsinya?)
echo), tapi saya tidak begitu ingat. ;-(
echo.adalah salah satu yang paling banyak beredar orang, bertahun-tahun yang lalu. Ini adalah satu dari banyak buku. Efisiensi bukan masalah. Perilaku aneh ketika berbagai file kebetulan ada adalah. Ketika saya menulis pengganti 32-bit untuk 16-bit cmddi OS / 2, melanggar nama perintah pada karakter tanda baca ini dan perilaku parsing yang sangat tidak teratur ini adalah salah satu hal yang saya sengaja tidak duplikat, dan yang saya letakkan pada dokumen daftar perbedaan. Saya membuat echodotperintah eksternal , yang mana bisa alias echo.sesuai keinginan.
echo(merupakan satu-satunya versi yang aman.
echo.mungkin tidak berfungsi .