Saya memiliki file batch yang menjalankan beberapa skrip python yang melakukan modifikasi tabel.
Saya ingin pengguna berkomentar skrip python 1-2 yang mereka tidak ingin jalankan, daripada menghapusnya dari file batch (sehingga pengguna berikutnya tahu skrip ini ada sebagai opsi!)
Saya juga ingin menambahkan komentar untuk menarik perhatian mereka khususnya variabel yang mereka butuhkan untuk memperbarui dalam file Batch sebelum mereka menjalankannya. Saya melihat bahwa saya dapat menggunakan
REM
. Tapi sepertinya itu lebih untuk memperbarui pengguna dengan kemajuan setelah mereka menjalankannya.
Apakah ada sintaks untuk menambahkan komentar dengan lebih tepat?
batch-file
cmd
comments
comment-conventions
pengguna1397044
sumber
sumber
Rem Sth
Perintah Atau Gunakan Tanda Ini::: Sth
Jawaban:
The
rem
Perintah memang untuk komentar. Itu tidak secara inheren memperbarui siapa pun setelah menjalankan skrip. Beberapa penulis skrip mungkin menggunakannya seperti itu alih-alihecho
, karena, secara default, penerjemah kumpulan akan mencetak setiap perintah sebelum diproses. Karenarem
perintah tidak melakukan apa-apa, aman untuk mencetaknya tanpa efek samping. Untuk menghindari pencetakan perintah, awali dengan@
, atau, untuk menerapkan pengaturan itu di seluruh program, jalankan@echo off
. (Iniecho off
untuk menghindari pencetakan perintah lebih lanjut, yang@
adalah untuk menghindari pencetakan yang perintah sebelum gema pengaturan mengambil efek.)Jadi, dalam file batch Anda, Anda dapat menggunakan ini:
sumber
REM This whole line is a comment
@echo off :: This comment is inline
#
komentar karena#
, jelas, mungkin bukan perancang komentar yang valid di semua shell Configure dimaksudkan untuk mendukung; lihat baris 3.Gunakan
::
atauREM
TAPI (seperti yang dicatat orang):
&
karakter:your commands here & :: commenttttttttttt
IF/ELSE
,FOR
loop, dll ...) digunakanREM
karena::
memberikan kesalahan.::
mungkin gagal dalamsetlocal ENABLEDELAYEDEXPANSION
sumber
cd "C:\Folder" ::this throws a syntax error
git add :: blah this is not a comment
dengan "fatal: pathspec 'blah' tidak cocok dengan file apa pun"&
antara kode dan komentar::
. Sebagai ilustrasi, buka cmd prompt dan jalankandir ::blah
yang tidak mencantumkan konten.
dan bandingkan dengandir & ::blah
, yang tidak::
skrip wasiat akan dengansetlocal ENABLEDELAYEDEXPANSION
danfor
Tidak, file batch lama biasa digunakan
REM
sebagai komentar.ECHO
adalah perintah yang mencetak sesuatu di layar.Untuk "mengomentari" bagian file yang dapat Anda gunakan
GOTO
. Contoh dari semua perintah / teknik ini:Apa yang bisa kukatakan? file batch adalah peninggalan yang sudah lama berlalu, mereka kikuk dan jelek.
Anda dapat membaca lebih lanjut di situs web ini .
EDIT: memodifikasi contoh sedikit agar mengandung elemen yang Anda cari.
sumber
The :: bukannya REM lebih disukai digunakan pada zaman komputer tidak terlalu cepat. Baris REM'ed dibaca dan kemudian dimurnikan. :: ed line diabaikan sepanjang jalan. Ini dapat mempercepat kode Anda di "masa lalu". Lebih jauh lagi setelah REM Anda membutuhkan ruang, setelah :: Anda tidak.
Dan seperti yang dikatakan dalam komentar pertama: Anda dapat menambahkan info ke baris apa pun yang menurut Anda perlu
Sedangkan untuk melewatkan bagian. Menempatkan REM di depan setiap baris bisa agak memakan waktu. Seperti disebutkan menggunakan GOTO untuk melewati bagian adalah cara mudah untuk melewati potongan kode besar. Pastikan untuk mengatur: LABEL pada titik yang Anda inginkan kode untuk melanjutkan.
sumber
::
danrem
sama.\n
dan kemudian mulai mem- parsing lagi [rujukan?]Komentar multi baris
Jika ada banyak baris yang ingin Anda komentari maka akan lebih baik jika Anda bisa membuat komentar multi-baris daripada mengomentari setiap baris.
Lihat posting ini oleh Rob van der Woude di blok komentar :
sumber
if
alih-alihgoto
stackoverflow.com/q/9074476/995714 ss64.com/vb/syntax-hybrid.html stackoverflow.com/a/34512715/995714Menempatkan komentar di baris yang sama dengan perintah: gunakan
& :: comment
Penjelasan:
&
memisahkan dua perintah , jadi dalam hal inicolor C
adalah perintah pertama dan:: set red font color
yang kedua.Penting:
Pernyataan dengan komentar ini terlihat benar secara intuitif:
tetapi itu bukan penggunaan komentar yang valid . Ini hanya berfungsi karena
goto
mengabaikan semua argumen yang melewati argumen pertama. Buktinya mudah, inigoto
juga tidak akan gagal:Namun upaya serupa
gagal mengeksekusi perintah karena 4 argumen yang tidak diketahui dengan
color
perintah:::
,grey
,on
,blue
.Ini hanya akan berfungsi sebagai:
Jadi ampersand tidak bisa dihindari.
sumber
Anda dapat berkomentar sesuatu menggunakan
::
atauREM
:atau
Untuk melakukannya di baris yang sama dengan perintah, Anda harus menambahkan tanda dan:
atau
catatan:
::
logika bersarang (IF-ELSE
,FOR
loop, dll ...) akan menyebabkan kesalahan. Dalam kasus tersebut, gunakanREM
saja.sumber
@Rado
digabungkan dalam jawaban saat itu dan terima kasih untuk itu, hanya saja saya lebih suka gaya lain untuk jawaban dan menggunakan gaya yang berbeda.Ini adalah topik lama dan saya ingin menambahkan pemahaman saya di sini untuk memperluas pengetahuan tentang topik yang menarik ini.
Perbedaan utama antara REM dan :: adalah:
REM adalah perintah itu sendiri, sementara :: TIDAK.
Kita dapat memperlakukan :: sebagai token yang segera setelah CMD parser menemukan ruang kosong di sebuah baris adalah :: token ini, ia hanya akan melewatkan seluruh baris dan membaca baris berikutnya. Itu sebabnya REM harus diikuti oleh setidaknya ruang kosong untuk dapat berfungsi sebagai komentar untuk saluran, sementara :: tidak memerlukan ruang kosong di belakangnya.
Bahwa REM adalah perintah itu sendiri dapat paling baik dipahami dari sintaks FOR berikut
Sintaks dasar FOR adalah sebagai berikut
di sini
<Command>
dapat berupa perintah yang valid. Jadi kita dapat menulis baris perintah yang valid sepertirem
perintahNamun, kami TIDAK BISA menulis baris berikut karena
::
bukan perintahsumber
::
adalah label (tidak valid) (yang menjelaskan perilakunya) dan karenanya tidak boleh digunakan (walaupun masih cukup umum)Anda dapat menambahkan komentar di akhir file batch dengan sintaks ini:
Pastikan Anda tidak pernah menggunakan tanda kurung penutup.
Atribusi: Leo Guttirez Ramirez di https://www.robvanderwoude.com/comments.php
sumber