Saya memiliki sebuah file batch yang berjalan beberapa skrip python yang dilakukan tabel modifikasi.
Saya ingin memiliki pengguna komentar 1-2 python script bahwa mereka don't ingin menjalankan, bukan menghapus mereka dari batch file (sehingga pengguna berikutnya yang tahu script ini ada sebagai pilihan!)
Saya juga ingin menambahkan komentar untuk membawa ke perhatian mereka secara khusus variabel-variabel yang mereka butuhkan untuk update di file Batch sebelum mereka jalankan. Saya melihat bahwa saya dapat menggunakan REM
. Tapi sepertinya itu's lebih untuk memperbarui pengguna dengan kemajuan setelah mereka've menjalankannya.
Apakah ada sintaks untuk lebih tepat menambahkan komentar?
::
atau REM
:: commenttttttttttt
REM commenttttttttttt
&
karakter:perintah anda di sini & :: commenttttttttttt
IF/ELSE
, UNTUK
loop, dll...) menggunakan REM
karena ::
memberikan kesalahan.::
mungkin gagal dalam setlocal ENABLEDELAYEDEXPANSION
The rem
perintah ini memang untuk komentar. Itu doesn't inheren update siapa pun setelah menjalankan script. Beberapa penulis naskah mungkin menggunakan cara itu bukan echo
, meskipun, karena secara default batch penerjemah akan cetak perintah masing-masing sebelum's diproses. Sejak rem
perintah don't melakukan apa-apa, itu's aman untuk mencetaknya tanpa efek samping. Untuk menghindari pencetakan perintah, mengawalinya dengan @
, atau, untuk menerapkan pengaturan seluruh program, jalankan @echo off
. (Itu's echo off
untuk menghindari pencetakan perintah lebih lanjut; yang @
adalah untuk menghindari pencetakan yang perintah sebelum echo pengaturan untuk mengambil efek.)
Jadi, dalam berkas batch, anda dapat menggunakan ini:
@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py
Tidak, tua polos batch file menggunakan REM
sebagai komentar. ECHO
ini perintah yang mencetak sesuatu di layar.
Untuk "komentar" bagian dari file anda bisa menggunakan GOTO
. Contoh dari semua perintah-perintah ini/teknik:
REM it starts here the section below can be safely erased once the file is customised
ECHO Hey you need to edit this file before running it! Check the instructions inside
ECHO Now press ctrl-c to interrupt execution or enter to continue
PAUSE
REM erase the section above once you have customised the file
python executed1.py
ECHO Skipping some stuff now
GOTO End
python skipped1.py
python skipped2.py
:END
python executed2.py
Apa yang bisa saya katakan? batch file adalah peninggalan dari waktu yang lama hilang, mereka're kikuk dan jelek.
Anda dapat membaca lebih lanjut di website ini.
EDIT: dimodifikasi contoh sedikit untuk memilikinya mengandung unsur-unsur yang anda tampaknya cari.
Yang :: bukan REM itu sebaiknya digunakan pada hari-hari yang komputer tidak't sangat cepat. REM'ed line yang membaca dan kemudian ingnored. ::'ed line diabaikan sepanjang jalan. Ini bisa mempercepat kode anda di "hari tua". Lebih-lebih setelah REM anda membutuhkan ruang, setelah :: anda don't.
Dan seperti dikatakan dalam komentar pertama: anda dapat menambah info untuk setiap baris yang anda merasa perlu untuk
SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS
Sedangkan untuk melewatkan bagian. Menempatkan REM di depan setiap baris dapat memakan waktu lama. Seperti yang disebutkan menggunakan GOTO untuk melompat bagian adalah cara mudah untuk melewatkan besar potongan-potongan kode. Pastikan untuk mengatur :LABEL pada titik yang anda inginkan kode untuk melanjutkan.
SOME CODE
GOTO LABEL ::REM OUT THIS LINE TO EXECUTE THE CODE BETWEEN THIS GOTO AND :LABEL
SOME CODE TO SKIP
.
LAST LINE OF CODE TO SKIP
:LABEL
CODE TO EXECUTE
Jika ada yang besar jumlah baris yang anda inginkan untuk komentar maka akan lebih baik jika anda dapat membuat multi-baris komentar daripada mengomentari setiap baris.
Lihat posting ini oleh Rob van der Woude pada blok komentar:
batch bahasa doesn't memiliki blok komentar, meskipun ada cara untuk mencapai efek.
GOTO EndComment1 baris Ini adalah komentar. sehingga garis ini. Dan yang satu ini... :EndComment1
Anda dapat menggunakan
GOTO
Label :Label untuk membuat blok komentar.Atau, Jika komentar blok yang muncul di akhir file batch, anda dapat menulis
EXIT
di akhir kode dan kemudian sejumlah komentar anda pengertian.@ECHO OFF REM Melakukan sesuatu • • REM Akhir kode; penggunaan GOTO:EOF bukan KELUAR untuk Windows NT dan kemudian EXIT
Mulai dari komentar blok di akhir batch file baris Ini adalah komentar. sehingga garis ini. Dan yang satu ini...
& :: comment
color C & :: set red font color
echo IMPORTANT INFORMATION
color & :: reset the color to default
Penjelasan:
&
memisahkan dua perintah, sehingga dalam hal ini warna C
adalah perintah pertama dan :: mengatur warna font merah
adalah yang kedua.
Pernyataan ini dengan komentar tampak intuitif yang benar:
goto error1 :: handling the error
tapi itu adalah tidak valid digunakan komentar. Ia bekerja hanya karena goto
mengabaikan semua argumen masa lalu yang pertama. Bukti lebih mudah, ini goto
tidak akan gagal:
goto error1 handling the error
Tapi upaya serupa
color 17 :: grey on blue
gagal mengeksekusi perintah karena 4 argumen yang tidak diketahui warna
perintah: ::
, abu-abu
, pada
, biru
.
Ini hanya akan bekerja sebagai:
color 17 & :: grey on blue
Jadi ampersand adalah tak terelakkan.
Anda dapat memberikan komentar sesuatu menggunakan ::
atau REM
:
your commands here
:: commenttttttttttt
atau
your commands here
REM commenttttttttttt
Untuk melakukan hal ini pada baris yang sama sebagai sebuah perintah, anda harus menambahkan ampersand:
your commands here & :: commenttttttttttt
atau
your commands here & REM commenttttttttttt
::
di bersarang logika (IF-ELSE
, UNTUK
loop, dll...) akan menyebabkan kesalahan. Dalam kasus tersebut, penggunaan REM
sebagai gantinya.Ini adalah topik lama dan I'd seperti untuk menambah pemahaman saya di sini untuk memperluas pengetahuan tentang topik ini menarik.
Perbedaan utama antara REM dan :: adalah:
REM adalah perintah itu sendiri, sementara :: TIDAK.
Kita dapat mengobati :: sebagai tanda bahwa segera setelah CMD parser pertemuan pertama non-ruang kosong di baris ini :: token, itu hanya akan melewatkan seluruh baris dan membaca baris berikutnya. Yang's mengapa REM harus diikuti oleh setidaknya satu ruang kosong untuk dapat berfungsi sebagai komentar untuk satu baris, sementara :: tidak perlu setiap ruang kosong di balik itu.
Bahwa REM adalah perintah itu sendiri dapat dipahami dari berikut UNTUK sintaks
Dasar UNTUK sintaks adalah sebagai berikut
FOR %v in (set) DO <Command> [command param]
berikut <Command>
dapat berupa perintah valid
Jadi kita dapat menulis sebagai berikut berlaku baris perintah sebagai rem
adalah perintah
FOR %i in (1,2,3) DO rem echo %i
Namun, kami TIDAK dapat menuliskan baris berikut sebagai ::
bukan perintah
FOR %i in (1,2,3) DO :: echo %i