Windows Batch (CMD) mungkin merupakan bahasa yang paling tidak cocok untuk kode golf.
Hindari karakter baris baru . Jika Anda mencari kode terpendek dalam byte, dan bukan karakter, Anda ingin menyingkirkan semua pengembalian carriage yang tidak perlu (karakter baris baru = 2 byte). Anda dapat menggunakan &operasi untuk melakukan ini, memangkas satu byte untuk setiap perintah.
echo Hello&echo World.
Pengaturan variabel . Saat mengatur variabel menggunakan sakelar, setparser akan mengabaikan spasi.
set /a a+=1
set /p b="User Input: "
:: Will be handled the same as..
set/aa+=1
set/pb="User Input: "
Perhatikan bahwa aturan parser yang sama tidak berlaku untuk semua perintah - sebagai contoh, untuk loop membutuhkan spasi. Kecuali antara set, string, or command(yaitu apa yang ada di dalam kurung) dan kata do.
for /f %%a in (file.txt)do ...
Ekspresi matematika sederhana . Juga, perhatikan ekspresi yang saya gunakan untuk penambahan dalam set /aperintah. Untuk ekspresi matematika yang sederhana, gunakan += -= *= /=alih-alih (misalnya) set /a a=%a%+1.
Mengumpulkan output perintah . Untuk mendapatkan output dari suatu perintah, kadang-kadang berguna untuk menampilkan dan membaca dari sebuah file, di mana Anda mungkin menggunakan loop for untuk mengumpulkan output:
for /f %%a in ('echo test') do set a=%%a
:: Can be shortened to
echo test>f&set/pa=<f
echo testkirim stdout ke file bernama f,, >fmulai perintah baru &dan dapatkan isi file dalam variabel set/pa=<f. Jelas ini tidak selalu berguna. Tetapi bisa jadi ketika yang Anda butuhkan adalah satu baris output.
Output perintah . Saat menekan output perintah, gunakan @sebelum perintah, kecuali jika Anda perlu menekan lebih dari 9 perintah, dalam hal ini, gunakan @echo offdi awal skrip Anda. @echo offpanjangnya 9 byte, dan karena itu umumnya akan menghemat lebih banyak byte dengan skrip yang lebih panjang.
Perintah sering melakukan lebih dari sekadar apa yang sudah jelas - pikirkan tentang apa yang dilakukan perintah Anda. Sebagai contoh; jika Anda perlu mengatur variabel dan menggemakan variabel lain, alih-alih:
set a=OUTPUT
echo %a%
echo test>f
set /p b=<f
Anda dapat menggunakan perintah set dengan /pberalih ke output %a%untuk Anda.
set a=OUTPUT
echo test>f
set /p b=%a%<f
Benar-benar bermain golf ...
set a=OUTPUT&echo test>f&set/pb=%a%<f
Beberapa contoh - Hitung jumlah semua digit - dugaan Goldbach .
Kiat lain lebih dihargai - saya akan terus memperbarui ini jika saya memikirkan hal lain.