කණ්ඩායමක / සෙන්ටිමීටරයක “අදහස් දැක්වීම” (අදහස් එකතු කිරීම) කරන්නේ කෙසේද?


909

වගු වෙනස් කිරීම් සිදුකරන පයිතන් ස්ක්‍රිප්ට් කිහිපයක් ධාවනය කරන කණ්ඩායම් ගොනුවක් මා සතුව ඇත.

  1. කණ්ඩායම් ගොනුවෙන් ඒවා ඉවත් කරනවාට වඩා, ධාවනය කිරීමට අවශ්‍ය නොවන පයිතන් ස්ක්‍රිප්ට් 1-2 ක් පරිශීලකයින්ට ප්‍රකාශ කිරීමට මට අවශ්‍යය (එබැවින් ඊළඟ පරිශීලකයා මෙම ස්ක්‍රිප්ට් විකල්ප ලෙස පවතින බව දනී!)

  2. Batch ගොනුව ක්‍රියාත්මක කිරීමට පෙර ඔවුන් විසින් යාවත්කාලීන කළ යුතු විචල්‍යයන් ඔවුන්ගේ අවධානයට යොමු කිරීම සඳහා අදහස් එක් කිරීමට ද මට අවශ්‍යය. මට භාවිතා කළ හැකි බව මම දකිමි REM. නමුත් එය ක්‍රියාත්මක කිරීමෙන් පසු පරිශීලකයා ප්‍රගතියෙන් යාවත්කාලීන කිරීම සඳහා වැඩි යමක් ඇති බව පෙනේ.

වඩාත් උචිත ලෙස අදහස් දැක්වීමක් සඳහා වාක්‍ය ඛණ්ඩයක් තිබේද?


6
විශිෂ්ට පිළිතුරු ද මෙහි බලන්න stackoverflow.com/q/12407800/1011025
ndemou

2
ඔබට Rem Sthවිධානය භාවිතා කළ හැකිය හෝ මෙම සලකුණ භාවිතා කරන්න::: Sth
විද්‍යා

Answers:


901

මෙම remවිධානය අදහස් ලබා ගැනීම සඳහා අන් යමක් නොවේ. ස්ක්‍රිප්ට් ධාවනය කිරීමෙන් පසු එය සහජයෙන්ම කිසිවෙකු යාවත්කාලීන නොකරයි. සමහර ස්ක්‍රිප්ට් කතුවරුන් එය වෙනුවට ඒ ආකාරයෙන් භාවිතා කළ හැකිය echo, මන්දයත් පෙරනිමියෙන් කණ්ඩායම් පරිවර්තකය සෑම විධානයක්ම සැකසීමට පෙර මුද්‍රණය කරනු ඇත . remවිධාන කිසිවක් නොකරන බැවින් අතුරු ආබාධ නොමැතිව ඒවා මුද්‍රණය කිරීම ආරක්ෂිත වේ. විධානයක් මුද්‍රණය කිරීමෙන් වළක්වා ගැනීම සඳහා, එය උපසර්ගයක් සමඟ @හෝ වැඩසටහන පුරාම එම සැකසුම ක්‍රියාත්මක කිරීමට ක්‍රියාත්මක කරන්න @echo off. (එය echo offතවදුරටත් විධාන මුද්‍රණය කිරීමෙන් වැළකී සිටීමයි. එනම් , ප්‍රතිරාවය සැකසීමට පෙර එම විධානය @මුද්‍රණය කිරීමෙන් වැළකී සිටීමයි .)

එබැවින්, ඔබගේ කණ්ඩායම් ගොනුවේ, ඔබට මෙය භාවිතා කළ හැකිය:

@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py

417
ඔබට "::" යන කොලොන් දෙකක් භාවිතා කළ හැකිය. කණ්ඩායම් ගොනුව ක්‍රියාත්මක වන විට එම පේළිය ප්‍රදර්ශනය නොකර හෝ ක්‍රියාත්මක නොකර කණ්ඩායම් ගොනුවට සටහන් එකතු කිරීමේ ක්‍රම දෙකෙන් එකකි. REM මෙන් නොව, මෙම ගොනුව ECHO අක්‍රිය කර ඇති බව නොසලකා ගොනු ගොනුවේ නොපෙන්වයි.
බ්‍රෙන්ට් 81

12
@ බ්‍රෙන්ට් 81 මෙය නිවැරදි පිළිතුර විය යුතු යැයි මට හැඟේ. සින්ටැක්ස් උද්දීපනය කරන විට REM විධානය පා text ය “අදහස් දැක්වීම” ලෙස ඉස්මතු නොකරයි.
ස්වයංක්‍රීය

17
ද්වි-මහා බඩවැල් යනු "අවලංගු ලේබලයකි"; මෙන්න එය පැහැදිලි කරන ලිපියක්, සහ එහි ක්‍රියාකාරීත්වය REM ට වඩා හොඳ විය හැක්කේ ඇයි (විශේෂයෙන් නම්ය තැටි වල!), එය ඉන්ඩෙන්ට්
මයිකල් පලුකොනිස්

4
සිත්ගන්නා සුළුය. මම REM යනු 'සම්පූර්ණ රේඛා විවරණය' සහ ද්විත්ව බඩවැල 'පේළිගත විවරණය' වැනි යREM This whole line is a comment @echo off :: This comment is inline
රිචඩ් ස්මිත්

L අල්හාඩිස්, පර්ල්ගේ වින්‍යාස පිටපත වින්ඩෝස් කණ්ඩායම නොව බෝර්න් කවචයේ ලියා ඇත, එබැවින් එය මෙහි අදාළ වන්නේ කෙසේද? තවද, මහා බඩවැලේ විධානය වලංගු බෝර්න් සින්ටැක්ස් “ප්‍රසාද අතුරු ආබාධයක්” නොවේ; එය හරියටම එම බෝර්න් පිටපතෙහි භාවිතා කරන්නේ ඇයිද යන්නයි . අදහස් දැක්වීම් සඳහා එය භාවිතා කරනුයේ , පෙනෙන පරිදි, සියලු කවච වල වලංගු විවරණ නිර්මාණකරුවෙකු නොවිය හැකි නිසා , වින්‍යාස කිරීම සහාය දැක්වීමට අදහස් කරයි; 3 වන පේළිය බලන්න##
රොබ් කෙනඩි

978

භාවිතා කරන්න ::හෝREM

::   commenttttttttttt
REM  commenttttttttttt

නමුත් (මිනිසුන් සඳහන් කළ පරිදි):

  • ::පේළිගතව ක්‍රියා නොකරයි; &අක්ෂර එකතු කරන්න :
    your commands here & :: commenttttttttttt
  • ඇතුළත කැදැලි කොටස් ( IF/ELSE, FORලූප, ආදිය ...) භාවිත ::රේඛාව සාමාන්‍ය රේඛාව සමඟ අනුගමනය කළ යුතුය, එසේ REMනොමැතිනම් එය දෝෂයක් ලබා දෙයි ( එහි භාවිතා කරන්න).
  • :: ඇතුළත ද අසමත් විය හැකිය setlocal ENABLEDELAYEDEXPANSION

79
ද්විත්ව බඩවැල් :: පිරිසිදුයි .බැට් විවරණය ඇත. එය පේළියක ආරම්භයේ හෝ මැදදී භාවිතා කළ හැකිය!
ATSiem

10
මේ ආකාරයට පේළිගත කළ විට මා වෙනුවෙන් වැඩ කළේ නැත. cd "C:\Folder" ::this throws a syntax error
ෂෝන් රෝවන්

20
උදාහරණයේ දැක්වෙන ආකාරයට එකම පේළියක අදහස් දැක්වීමක් සඳහා, ඔබ &කේතය සහ අදහස් අතර එකතු කළ යුතුය ::. , කඩිනම් සහ ලකුණු විවෘත cmd නිදර්ශනය කිරීමට dir ::blahඅන්තර්ගතය ලැයිස්තුගත නොවන .හා සංසන්දනය dir & ::blah, එය නොසලකා
Rado

19
අවවාදයයි, භාවිතා ::සමග කැමැත්ත දෝෂ පිටපත් setlocal ENABLEDELAYEDEXPANSIONහාfor
අසවේදු

4
::අදහස් ලෙස ලේබල් භාවිතා කිරීම අපේක්ෂා කළ නොහැකි දෝෂ ඇති කළ හැකි ආකාරය පිළිබඳ උදාහරණ . මෙය පිරිසිදු යැයි හැඳින්වීම තරමක් නොමඟ යවන සුළුය @ATSiem
Jean-François Corbett

49

නැත, සරල පැරණි කණ්ඩායම් ලිපිගොනු REMවිවරණයක් ලෙස භාවිතා කරයි. ECHOතිරය ​​මත යමක් මුද්‍රණය කරන විධානයයි.

ඔබට භාවිතා කළ හැකි ගොනුවේ කොටස් "අදහස් දැක්වීමට" GOTO. මෙම සියලු විධාන / ශිල්පීය ක්‍රම සඳහා උදාහරණයක්:

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

මට කුමක් කිව හැකිද? කණ්ඩායම් ලිපිගොනු දිගු කලක් ගත වූ ධාතූන් වහන්සේ ය.

ඔබට මෙම වෙබ් අඩවියෙන් වැඩිදුර කියවිය හැකිය .

සංස්කරණය කරන්න: ඔබ සොයන අංග අඩංගු වන පරිදි උදාහරණය ටිකක් වෙනස් කරන ලදි.


32

පරිගණක ඉතා වේගවත් නොවූ දිනවල REM වෙනුවට :: භාවිතා කිරීම වඩාත් සුදුසුය. REM'ed රේඛාව කියවා ඉන් පසුව සටහන් කර ඇත. :: 'එඩ් රේඛාව නොසලකා හරිනු ලැබේ. මෙය "පැරණි දිනවල" ඔබේ කේතය වේගවත් කළ හැකිය. REM එකකින් පසුව ඔබට තවත් ඉඩක් අවශ්‍යයි, පසුව :: ඔබට අවශ්‍ය නැත.

පළමු අදහස් දැක්වීමේදී: ඔබට අවශ්‍ය යැයි හැඟෙන ඕනෑම පේළියකට තොරතුරු එක් කළ හැකිය

SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS

කොටස් මඟ හැරීම සම්බන්ධයෙන්. සෑම පේළියක් ඉදිරිපිටම REM තැබීම බොහෝ කාලයක් ගතවනු ඇත. කොටස් මඟ හැරීම සඳහා GOTO භාවිතා කිරීම සඳහන් කළ පරිදි විශාල කේත කැබලි මඟ හැරීමට පහසු ක්‍රමයකි. කේතය දිගටම කරගෙන යාමට ඔබට අවශ්‍ය මොහොතේදී: LABEL සැකසීමට වග බලා ගන්න.

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

1
කියවීමකින් තොරව ද්වි-මහා රේඛාවක් නොසලකා හැරිය හැක්කේ කෙසේද? පේළිය ද්වි-මහා රේඛාවක් ලෙස හඳුනා ගැනීමට පෙර පරිවර්ථකයා මුලින්ම කියවිය යුතු නොවේද?
රොබ් කෙනඩි

2
@RobKennedy මම පිළිතුර කියවන විට, එය :: ට පසුව කිසිවක් කියවන්නේ නැත, එහිදී REM පසු සියල්ල කියවනු ලැබේ.
ජේම්ස් ජෙන්කින්ස්

5
Command ජේම්ස් නම් විධාන පරිවර්තකය කියවීම නැවැත්වුවහොත් එය කිසි විටෙකත් ගොනුව ක්‍රියාත්මක නොකරයි. අදහස් දැක්වීම අවසන් වන්නේ කොතැනින්ද සහ ගොනුවේ ඊළඟ පේළිය ආරම්භ වන්නේ කොතැනින්ද යන්න සොයා ගැනීමට එය දිගටම කියවීම අවශ්‍ය වේ. එය කළ යුත්තේ ::හා remසමානව ය.
රොබ් කෙනඩි

2
Ob රොබ් කෙනඩි, මම සිතුවේ එය ක්‍රියාත්මක වන්නේ විධානය ක්‍රියාත්මක වන රේඛාවට පමණක් බවයි.
ජේම්ස් ජෙන්කින්ස්

7
Ob රොබ් කෙනඩි එය කියවන නමුත් එය කියවන දේ විග්‍රහ නොකරයි (හෝ ක්‍රියාවට නංවන්නේ නැත ), එය ඊළඟ වන තෙක් මඟ හැරී \nනැවත විග්‍රහ කිරීමට පටන් ගනී [උපුටා දැක්වීම අවශ්‍යයි]
xDaizu

26

බහු පේළි අදහස්

ඔබට අදහස් දැක්වීමට අවශ්‍ය පේළි විශාල සංඛ්‍යාවක් තිබේ නම්, සෑම පේළියක්ම අදහස් දැක්වීමට වඩා බහු රේඛා අදහස් දැක්වීමට ඔබට හැකි නම් වඩා හොඳය.

අදහස් දැක්වීම් කොටස් පිළිබඳ රොබ් වැන් ඩර් වෝඩ්ගේ මෙම ලිපිය බලන්න :

බලපෑම ඉටු කර ගැනීමට ක්‍රම තිබුණද, කණ්ඩායම් භාෂාවට අදහස් දැක්වීමේ කොටස් නොමැත.

GOTO EndComment1
This line is comment.
And so is this line.
And this one...
:EndComment1

GOTOවාරණ අදහස් දැක්වීම සඳහා ඔබට ලේබලය සහ: ලේබලය භාවිතා කළ හැකිය .

නැතහොත්, කණ්ඩායම් ගොනුවේ අවසානයේ විවරණ කොටස දිස්වන්නේ නම්, ඔබට EXITකේතය අවසානයේ ලිවිය හැකි අතර පසුව ඔබේ අවබෝධය සඳහා ඕනෑම අදහස් ගණනක්.

@ECHO OFF
REM Do something
  •
  •
REM End of code; use GOTO:EOF instead of EXIT for Windows NT and later
EXIT

Start of comment block at end of batch file
This line is comment.
And so is this line.
And this one...

ඔවුන් භාවිතා වුවද නම් මෙම බොහෝ විට, දෙමුහුන් කණ්ඩායම සහ VBS / JS ස්ක්රිප්ට් භාවිතා ifවෙනුවට goto stackoverflow.com/q/9074476/995714 ss64.com/vb/syntax-hybrid.html stackoverflow.com/a/34512715/995714
phuclv

14

විධාන සමඟ එකම පේළියේ අදහස් දැක්වීම: භාවිතා කරන්න & :: comment

color C          & :: set red font color
echo IMPORTANT INFORMATION
color            & :: reset the color to default

පැහැදිලි කිරීම:

&විධාන දෙකක් වෙන් කරයි , එබැවින් මේ අවස්ථාවේ color Cදී පළමු විධානය :: set red font colorවන අතර දෙවැන්න වේ.


වැදගත්:

අදහස් දැක්වීම සහිත මෙම ප්‍රකාශය බුද්ධිමත්ව නිවැරදි බව පෙනේ:

goto error1         :: handling the error

නමුත් එය අදහස් දැක්වීමේ වලංගු භාවිතයක් නොවේ . එය ක්‍රියාත්මක වන්නේ gotoපළමු තර්කය පසු කළ සියලු තර්ක නොසලකා හැරීම නිසා පමණි . සාධනය පහසුය, මෙයද gotoඅසාර්ථක නොවනු ඇත:

goto error1 handling the error

නමුත් ඒ හා සමාන උත්සාහයක්

color 17            :: grey on blue

නිසා නොදන්නා තර්ක 4 විධානය ක්රියාත්මක අසමත් colorවිධානය ක්රියාත්මක කරන්න: ::, grey, on, blue.

එය ක්‍රියාත්මක වන්නේ:

color 17     &      :: grey on blue

එබැවින් ඇම්පියර්සෑන්ඩ් නොවැළැක්විය හැකිය.


වෙනත් පිළිතුරු වලින්, ඇම්පියර්සෑන්ඩ් අවශ්‍ය නොවන බව පෙනේ?
රොග්

3
Ap ස්නැප්ටැස්ටික් - අනෙක් පිළිතුරු මෙම අවස්ථාවේදී ඇත්ත වශයෙන්ම වැරදියි, මගේ මෑත සංස්කරණය බලන්න.
miroxlav

මෙය නිවැරදි ක්‍රමය බව පෙනේ; එය මගේ IDE හි අදහස් දැක්වීමක් ලෙස පවා ඉස්මතු වේ.
බබුරාඕ

5

ඔබට යමක් භාවිතා කර අදහස් දැක්විය හැකිය ::හෝ REM:

your commands here
:: commenttttttttttt

හෝ

your commands here
REM  commenttttttttttt

 

විධානයක් ලෙස එකම රේඛාවකින් එය සිදු කිරීම සඳහා, ඔබ ඇම්පියර්සෑන්ඩ් එකක් එක් කළ යුතුය:

your commands here      & ::  commenttttttttttt

හෝ

your commands here      & REM  commenttttttttttt

 

සටහන:

  • භාවිතා :: පිලිතුරු කැදැලි, තර්ක ශාස්ත්රය ( IF-ELSE, FORවළළු, ආදිය ...) දෝෂයක් හේතු වනු ඇත. එවැනි අවස්ථාවලදී REMඒ වෙනුවට භාවිතා කරන්න.

මෙය ටී. ටොඩුවාගේ පිළිතුර මත පදනම් වේ. ඔවුන්ගේ පිළිතුර හොඳ යැයි මට හැඟුණු නමුත් වැදගත් තොරතුරු කිහිපයක් අතහැර දමා ඇත, නමුත් ඔවුන් මගේ සංස්කරණය ආපසු හරවා යැවීය, එබැවින් මම මගේ සංශෝධනය එහි පිළිතුර බවට හරවන්නෙමි.
පිකාමාන්ඩර් 2

Pikamander2, ඔබේ සංශෝධනය (පරිශීලකයා විසින් පෙන්වා දුන් පරිදි @Rado එම අවස්ථාවේදී පිළිතුර ඒකාබද්ධ කරන ලද අතර ඒ සඳහා ස්තූතියි, මම පිළිතුර සඳහා තවත් මෝස්තරයකට වැඩි කැමැත්තක් දැක්වූ අතර විවිධ මෝස්තර භාවිතා
කළෙමි

2

මෙම වාක්‍ය ඛණ්ඩය සමඟ කණ්ඩායම් ගොනුවක අවසානයට ඔබට අදහස් එකතු කළ හැකිය:

@echo off
:: Start of code
...
:: End of code

(I am a comment
So I am!
This can be only at the end of batch files

ඔබ කිසි විටෙකත් සංවෘත වරහන් භාවිතා නොකරන බවට වග බලා ගන්න.

ආරෝපණ: https://www.robvanderwoude.com/comments.php හි ලියෝ ගුටිරෙස් රමිරෙස්


1

මෙය පැරණි මාතෘකාවක් වන අතර මෙම සිත්ගන්නා මාතෘකාව පිළිබඳ දැනුම පුළුල් කිරීම සඳහා මගේ අවබෝධය මෙහි එක් කිරීමට කැමැත්තෙමි.

REM සහ :: අතර ඇති ප්‍රධාන වෙනස නම්:

REM යනු විධානයක් වන අතර :: එසේ නොවේ.

අපට :: ටෝකනයක් ලෙස සැලකිය හැකිය CMD විග්‍රහකය පේළියක ඇති පළමු හිස් නොවන අවකාශය හමු වූ වහාම මෙය :: ටෝකනය නම්, එය මුළු පේළියම මඟ හැර ඊළඟ පේළිය කියවනු ඇත. රේඛාව සඳහා අදහස් දැක්වීමක් ලෙස ක්‍රියා කිරීමට REM අනුගමනය කළ යුත්තේ අවම වශයෙන් හිස් ඉඩක් වන අතර :: :: පිටුපස කිසිදු හිස් ඉඩක් අවශ්‍ය නොවේ.

REM යනු විධානයක් බව පහත දැක්වෙන FOR සින්ටැක්ස් වලින් වඩාත් හොඳින් වටහා ගත හැකිය

මූලික FOR සින්ටැක්ස් පහත පරිදි වේ

FOR %v in (set) DO <Command> [command param] 

මෙතන <Command>අපි පහත සඳහන් වලංගු විධාන රේඛාව ලියන්න පුළුවන් ඒ නිසා ඕනෑම වලංගු යුතු විධාන remආඥාව

FOR %i in (1,2,3) DO rem echo %i

කෙසේ වෙතත්, අපට ::විධානයක් නොවන බැවින් පහත පේළිය ලිවිය නොහැක

FOR %i in (1,2,3) DO :: echo %i

4
තාක්ෂණික වශයෙන්, ::(අවලංගු) ලේබලයකි (එය එහි හැසිරීම පැහැදිලි කරයි) එබැවින් එය භාවිතා නොකළ යුතුය (එය තවමත් පොදු වුවත්)
ස්ටෙෆාන්

0

ඔබට අදහස් දැක්වීම් සඳහා ::හෝ භාවිතා කළ හැකිය rem.

අදහස් දැක්වීමේදී ::එය 3 ගුණයක් වේගවත් බැවින් භාවිතා කරන්න . උදාහරණයක් මෙහි දැක්වේ

අදහස් දැක්වීම් තිබේ නම් පමණක් ifභාවිතා කරන්න rem, කොලන්ට දෝෂ ඇති විය හැකි බැවින් ඒවා ලේබලයකි.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.