Jika Anda menggunakan CLI, mengapa tidak menggunakan loop FOR untuk "DO" apa pun yang Anda inginkan:
for /F "delims=" %a in ('dir') do @echo %a && echo %a >> output.txt
Sumber daya hebat pada Windows CMD untuk loop: https://ss64.com/nt/for_cmd.html
Kuncinya di sini adalah mengatur delimeter (delims), yang akan memecah setiap baris output, menjadi nol. Dengan cara ini tidak akan merusak default white-space. % A adalah huruf arbitrer, tetapi digunakan di bagian "do" untuk, well ... melakukan sesuatu dengan karakter yang diuraikan pada setiap baris. Dalam hal ini kita dapat menggunakan ampersand (&&) untuk menjalankan perintah gema ke-2 untuk membuat-atau-menambahkan (>>) ke file pilihan kita. Lebih aman untuk menjaga urutan perintah DO ini jika ada masalah saat menulis file, setidaknya kita akan mendapatkan gema ke konsol terlebih dahulu. Tanda at (@) di depan gema pertama menekan konsol agar tidak menampilkan perintah gema itu sendiri, dan sebagai gantinya hanya menampilkan hasil perintah yang menampilkan karakter dalam% a.
echo Volume in drive [x] adalah Windows
Volume in drive [x] adalah Windows
UPDATE: / F melewatkan baris kosong dan hanya memperbaiki adalah untuk pra-filter output menambahkan karakter ke setiap baris (mungkin dengan nomor baris melalui perintah find). Memecahkan ini dalam CLI tidak cepat atau cantik. Selain itu, saya tidak memasukkan STDERR, jadi ini juga menangkap kesalahan:
for /F "delims=" %a in ('dir 2^>^&1') do @echo %a & echo %a >> output.txt
Mengarahkan Pesan Kesalahan
Tanda sisipan (^) ada untuk melarikan diri dari simbol setelah mereka, karena perintah adalah string yang sedang ditafsirkan, sebagai lawan untuk mengatakan, memasukkannya langsung pada baris perintah.