වින්ඩෝස් සීඑම්ඩී හි එක් පේළියක විධාන දෙකක් ක්‍රියාත්මක කරන්නේ කෙසේද?


991

වින්ඩෝස් සීඑම්ඩී කොන්සෝලය තුළ විධාන දෙකක් ක්‍රියාත්මක කිරීමට මට අවශ්‍යය.

ලිනක්ස් වලදී මම මේ ආකාරයට කරන්නෙමි

touch thisfile ; ls -lstrh

එය වින්ඩෝස් හි සිදු කරන්නේ කෙසේද?

Answers:


1373

2000 සිට සියලුම මයික්‍රොසොෆ්ට් මෙහෙයුම් පද්ධති වල මේ ආකාරයටම අදටත් හොඳයි:

dir & echo foo

දෙවන විධානය ක්‍රියාත්මක කිරීමට ඔබට අවශ්‍ය නම් පළමුවැන්න සාර්ථකව පිටව ගියහොත් පමණි:

dir && echo foo

එක් පේළියක බහුවිධ විධානයන් ක්‍රියාත්මක කිරීම සඳහා තනි ඇම්පියර්සෑන්ඩ් (&) සින්ටැක්ස් වින්ඩෝස් එක්ස්පී, වින්ඩෝස් 2000 සහ ඊට පෙර එන්.ටී. (අවම වශයෙන් 4.0, මෙහි එක් විචාරකයෙකුට අනුව.)

මේ ගැන තවත් කරුණු කිහිපයක් තිබේ, ඔබට මෙම පිටුව පහළට අනුචලනය කළ හැකිය.

අධ්‍යාපනික යැයි සිතිය හැකි අය සඳහා data තිහාසික දත්ත පහත දැක්වේ.

ඊට පෙර, && සින්ටැක්ස් යනු මයික්‍රොසොෆ්ට් විධාන පරිවර්තකයට එක් කිරීමට පෙර ෂෙල් ආදේශන 4DOS හි අංගයක් පමණි.

වින්ඩෝස් 95, 98 සහ එම්ඊ වල, ඔබ ඒ වෙනුවට පයිප්ප අක්ෂරය භාවිතා කරයි:

dir | echo foo

MS-DOS 5.0 සහ පසුව, විධාන පරිවර්තකයේ මීට පෙර වින්ඩෝස් සහ එන්ටී අනුවාදයන් හරහා, (ලේඛනගත නොකළ) විධාන බෙදුම්කරු 20 (Ctrl + T) අක්ෂරය විය, මම මෙහි ^ T සමඟ නිරූපණය කරමි.

dir ^T echo foo

26
අවම වශයෙන් එන්ටී 4 දක්වා පහළට
ජෝයි

17
වින් 8.0 සහ 8.1 හි ද ක්‍රියා කරයි.
MEMark

5
Al ෆැලන්රීපර්, එය සෘජු cmdවිමසුමේදී ද ක්‍රියා කරයි, එබැවින් එයට ඇතුල් වීම නරක පුරුද්දක් නොවන බව මම සිතමි. :)

6
Al ෆැලන්රීපර් මේ දෙක අතර ඇති ප්‍රායෝගික වෙනස ඔබ දැනුවත්ව සිටින බවට වග බලා ගන්න: රයිහාන්ගේ පිළිතුර පහත බලන්න.
මෝෂේ කැට්ස්

8
තේරුණා. A && B, B ක්‍රියාත්මක වන්නේ A සාර්ථක වුවහොත් පමණක් වන අතර A හි ප්‍රති come ලය කුමක් වුවත් A & B A පසු A ධාවනය කරයි. හිස ඔසවා
තැබීමට

592

ප්‍රලේඛනයෙන් උපුටා ගැනීමක්:

බහු විධාන සහ කොන්දේසි සහිත සැකසුම් සංකේත භාවිතා කිරීම

කොන්දේසි සහිත සැකසුම් සංකේත භාවිතයෙන් ඔබට එක් විධාන රේඛාවකින් හෝ ස්ක්‍රිප්ට් එකකින් බහු විධාන ධාවනය කළ හැකිය. ඔබ කොන්දේසි සහිත සැකසුම් සංකේත සමඟ බහු විධානයන් ක්‍රියාත්මක කරන විට, කොන්දේසිගත සැකසුම් සංකේතයේ දකුණට ඇති විධානයන් කොන්දේසිගත සැකසුම් සංකේතයේ වම්පස ඇති විධානයෙහි ප්‍රති results ල මත පදනම්ව ක්‍රියා කරයි.

උදාහරණයක් ලෙස, ඔබට විධානයක් ක්‍රියාත්මක කිරීමට අවශ්‍ය වනුයේ පෙර විධානය අසමත් වුවහොත් පමණි. නැතහොත්, ඔබට විධානයක් ක්‍රියාත්මක කිරීමට අවශ්‍ය වනුයේ පෙර විධානය සාර්ථක නම් පමණි.

පහත දැක්වෙන වගුවේ ලැයිස්තුගත කර ඇති විශේෂ අක්ෂර බහු විධානයන් භාවිතා කිරීමට ඔබට භාවිතා කළ හැකිය.

  • & [...]
    command1 & command2
    එක් විධාන රේඛාවක බහු විධාන වෙන් කිරීමට භාවිතා කරන්න. Cmd.exe පළමු විධානය ද දෙවන විධානය ද ක්‍රියාත්මක කරයි.

  • && [...]
    command1 && command2
    පහත දැක්වෙන විධානය ක්‍රියාත්මක කිරීමට භාවිතා කරන්න && සංකේතයට පෙර විධානය සාර්ථක නම් පමණි. Cmd.exe පළමු විධානය ක්‍රියාත්මක කරන අතර දෙවන විධානය ක්‍රියාත්මක කරන්නේ පළමු විධානය සාර්ථකව සම්පූර්ණ කළහොත් පමණි.

  • || [...]
    command1 || command2
    පහත දැක්වෙන විධානය ක්‍රියාත්මක කිරීමට භාවිතා කරන්න || පෙර විධානය නම් || අසමත් වේ. Cmd.exe පළමු විධානය ක්‍රියාත්මක කරන අතර දෙවන විධානය ක්‍රියාත්මක කරන්නේ පළමු විධානය සාර්ථකව සම්පූර්ණ නොකළේ නම් පමණි (ශුන්‍යයට වඩා විශාල දෝෂ කේතයක් ලැබේ).

  • ( ) [...]
    (command1 & command2)
    බහු විධානයන් කණ්ඩායම් කිරීමට හෝ කැදැල්ලට භාවිතා කරන්න.

  • ; or ,
    command1 parameter1;parameter2
    විධාන පරාමිතීන් වෙන් කිරීමට භාවිතා කරන්න.


43
උත්සාහ කරන්න cmd /c "echo foo & echo bar".
රයිහාන්

2
vagrant up && vagrant sshවින්ඩෝස් 10 හි උද්ධෘත ලකුණු නොමැතිව වැඩ කර ඇත
furman87

ස්තූතියි! මම සිංග් ගැන දැන සිටියේ නැත &- එය අසමමුහුර්ත කර සමාන්තරව ධාවනය වේ. මම හිර වී සිටියේ මා භාවිතා &&කරන සමමුහුර්ත නිසා වන අතර එය දිගටම පවතින්නේ පළමු සාර්ථක වුවහොත් පමණි!
ටෙට්‍රා දේව්

1
ප්‍රලේඛන සබැඳිය කැඩී ඇත, නව ස්ථානය technet.microsoft.com/en-us/library/bb490954.aspx
nkef

7
Et ටෙට්‍රා දේව් &විධාන අසමමුහුර්ත හෝ සමාන්තර නොකරයි. command1 & command2අවසන් වූ command2 පසු ක්‍රියාත්මක command1වේ. සාර්ථකත්වය හෝ අසාර්ථකත්වය අදාල command1නොවේ.
bornfromanegg

74

&සඳහා බෑෂ් සමාන වේ ;(ලකුණු විධාන) සහ &&වන බෑෂ් සමාන වේ &&(ලකුණු විධාන පෙර දෝෂයක් හේතුවෙන් නැත විට පමණක්).


1
මෙය csh, tcsh සහ තවත් බොහෝ ෂෙල් වෙඩි සඳහාද සත්‍ය වේ. මම මීට ;පෙර ලිනක්ස් හි දැක නැත
phuclv

10
Sh LưuVĩnhPhúc යනු sh-style shells වලින්, ;පළමු විධානය ක්‍රියාත්මක කිරීම, එය අවසන් වන තෙක් බලා සිටීම, දෙවන විධානය ක්‍රියාත්මක කිරීම ය. &පළමු විධානය ක්‍රියාත්මක කිරීම, එය පසුබිමට දැමීම සහ දෙවන විධානය ක්‍රියාත්මක කිරීම ය. එබැවින් වැඩසටහන් දෙකම එකවර දියත් කරයි. මේවා සංකේත සංයෝජනය නොවන බව සලකන්න, ඒවා පළමු විධානයට සංකේත පසුපස ය; progname &දෙවන විධානයක් නොමැතිව ඔබට තනි විධානයක් පසුබිමෙන් දියත් කළ හැකිය .
එම්එම්

25

ඔබට විධාන එකින් එක ක්‍රියාත්මක කිරීමට සහ ක්‍රියාත්මක කිරීමට හැකිය. උදාහරණයක්:c:\dir & vim myFile.txt


20

ඔබට cmd කෙටිමඟක් සෑදීමට අවශ්‍ය නම් (උදාහරණයක් ලෙස ඔබේ ඩෙස්ක්ටොප් එකේ) එකතු කරන්න / k පරාමිතිය (/ k යන්නෙන් තබා ගන්න, / c කවුළුව වැසෙනු ඇත):

cmd /k echo hello && cd c:\ && cd Windows

16

පරිසර විචල්‍යයන් ඉතා ඉක්මණින් ඇගයීමට ලක් කිරීමේ ගැටළුව මඟහරවා ගැනීමට ඔබට ඇමතුම භාවිතා කළ හැකිය - උදා

set A=Hello & call echo %A%

1
මෙය ක්‍රියාත්මක වන්නේ විචල්‍යය දැනටමත් සකසා නොමැති නම් පමණි, එම අවස්ථාවේදී echoමුද්‍රණය කරන්නේ පැරණි අගය මිස නව අගය නොවේ. අවම වශයෙන්, මෙය මගේ වින්ඩෝස් 7 කොටුවේ නිරීක්ෂණය කරනු ලැබේ.
ක්‍රේග් එම්. බ්‍රැන්ඩන්බර්ග්

විචල්‍යය සකසා නොමැති බව තහවුරු කර ගැනීම සඳහා මම පළමුව A = කට්ටලය භාවිතා කරමි.
එස්එස්සී

1
වඩා හොඳ ක්‍රමයක් වන්නේ ප්‍රමාද වූ ප්‍රසාරණය භාවිතා කිරීමයි ( setlocal EnableDelayedExpansionස්ක්‍රිප්ට් එකක හෝ cmd /v). උදාහරණයක් ලෙස : timeout 5 && cmd /v /c echo !TIME! && echo %TIME%.
නික්

7
නව අගය ලබා ගැනීම සඳහා පළමු ප්‍රතිශතයෙන් පසු ^ භාවිතා කරන්න: A = හෙලෝ සහ ඇමතුම් echo% ^ A% සකසන්න
නිකොලස්

9

ගණනාවක් සකසන සංකේත හා එකම පේළියෙහි කිහිපයක් විධාන භාවිතයෙන් විට භාවිතා කළ හැකි අතර, අනෙක් නඩුව ප්රතිදානය වෙනස්, සමහර අවස්ථාවල දී හරවා යැවීමේ සැකසුම් විය හැක, හෝ හුදෙක් නැහැ. එක් වැදගත් අවස්ථාවක් වන්නේ විචල්‍යයන් හසුරුවන එකම රේඛා විධානයන් මත තැබීමයි.

@echo off
setlocal enabledelayedexpansion
set count=0
set "count=1" & echo %count% !count!

0 1

ඉහත උදාහරණයේ ඔබ දකින පරිදි, විචල්යයන් භාවිතා කරන විධාන එකම පේළියක තබා ඇති විට, ඔබේ විචල්ය අගයන් යාවත්කාලීන කිරීම සඳහා ප්රමාද වූ විස්තාරණය භාවිතා කළ යුතුය. ඔබේ විචල්‍යය සුචිගත කර ඇත්නම්, එහි අගය එකම රේඛාවකින් යාවත්කාලීන කිරීමට %% විකරණකාරක සමඟ CALL විධානය භාවිතා කරන්න:

set "i=5" & set "arg!i!=MyFile!i!" & call echo path!i!=%temp%\%%arg!i!%%

path5=C:\Users\UserName\AppData\Local\Temp\MyFile5

ලබා දී ඇති උදාහරණය මට වැඩ නොකළ නමුත් එකකට වඩා පහළින්: cmd /V:ON /c "set i=5 & set arg!i!=MyFile!i! & echo path!i!=%temp%\%arg!i!%"
sactiw

8

cmd /c ipconfig /all & Output.txt

මෙම විධානය මඟින් විධානය ක්‍රියාත්මක කර Output.txtගොනුව තනි විධානයකින් විවෘත කරන්න


8

එබැවින්, RegAsmසන්දර්භය මෙනුවකින් ධාවනය කිරීමේ (එකලස් කිරීමේ ලියාපදිංචි කිරීමේ) නිශ්චිත කාර්යය සක්‍රීය කිරීමට මම උත්සාහ කළෙමි . මට තිබූ ගැටලුව නම්, කියවීමට පෙර ප්‍රති result ලය ක්ෂණිකව පහව යනු ඇත. ඒ නිසා මම පයිප්ප කිරීමට උත්සාහ කළෙමි Pause, එය විධානය අසමත් වූ විට ක්‍රියා නොකරයි (මෙහි සඳහන් කර ඇති පරිදි .bat ස්ක්‍රිප්ට් හි විරාමය විධාන ක්‍රියා නොකරයි. මෙහි Batch ගොනු විධානය PAUSE ක්‍රියා නොකරයි ). ඒ නිසා මම උත්සාහ කළ cmd /kනමුත් එය වැඩි විධාන සඳහා කවුළුව විවෘත කරයි (මට අවශ්‍ය වන්නේ ප්‍රති result ලය කියවීමට පමණි). ඒ නිසා මම දාමයට pauseපසුව එකක් එකතු කළෙමි exit.

cmd /k C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "%1" /codebase \"%1\" & pause & exit

මෙය චාම් එකක් මෙන් ක්‍රියා කරයි - RegAsm ගොනුව මත ධාවනය වන අතර එහි ප්‍රති results ල පෙන්වයි, ඉන්පසු "ඉදිරියට යාමට ඕනෑම යතුරක් ඔබන්න ..." විමසුමක් පෙන්වනු ලැබේ, පසුව යතුරක් එබූ විට විධාන විමසුම් කවුළුව වැසෙයි.

PS උනන්දුවක් දක්වන වෙනත් අය සඳහා, .dll ලිපිගොනු වලට dllfile ඇසුරක් එක් කිරීමට ඔබට පහත .reg ගොනු ඇතුළත් කිරීම් භාවිතා කළ හැකි අතර ඉන්පසු RegAsm විධාන දිගුවක් (පැන ගිය මිල ගණන් සහ බැක්ස්ලෑෂ් සැලකිල්ලට ගන්න):

[HKEY_CLASSES_ROOT\.dll]
"Content Type"="application/x-msdownload"
@="dllfile"

[HKEY_CLASSES_ROOT\dllfile]
@="Application Extension"

[HKEY_CLASSES_ROOT\dllfile\Shell\RegAsm]
@="Register Assembly"

[HKEY_CLASSES_ROOT\dllfile\Shell\RegAsm\command]
@="cmd /k C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\regasm.exe \"%1\" /codebase \"%1\" & pause & exit"

එකලස් කිරීමක් ලියාපදිංචි කිරීම සඳහා දැන් මට හොඳ දකුණු-ක්ලික් මෙනුවක් තිබේ.



4

එකවර විධාන දෙකක් ක්‍රියාත්මක කිරීම සඳහා, ඔබ විධාන දෙක අතර & (ampersand) සංකේතයක් තැබිය යුතුය. එසේ වැනි:

color 0a & start chrome.exe

චියර්ස්!


4

මම එකම කවුළුව තුළ පිං දෙකක් තබා ගැනීමට උත්සාහ කරමි, එය එකම පේළියේ අනුක්‍රමික විධානයකි. පළමුවැන්න අවසන් කිරීමෙන් පසු දෙවන විධානය ක්‍රියාත්මක කරන්න.

විසඳුම වූයේ start /bවින්ඩෝස් 7 විධාන විමසුමක් සමඟ ඒකාබද්ධ කිරීමයි.

සුපුරුදු පරිදි, නැතිව /bආරම්භ කර වෙනම කවුළුවකින් දියත් කරන්න.

එකම පේළියේ දියත් කිරීමට භාවිතා කරන විධානය:

start /b command1 parameters & command2 parameters

ඕනෑම ආකාරයකින්, ඔබ ප්‍රතිදානය විග්‍රහ කිරීමට කැමති නම්, මෙය භාවිතා කිරීමට මම නිර්දේශ නොකරමි. විධානවල ප්‍රතිදානය අතර ප්‍රතිදානය සීරීමට ලක්ව ඇති බව මම දුටුවෙමි.


4

හොඳයි, ඔබට විකල්ප දෙකක් තිබේ: පයිප්ප කිරීම හෝ &:

DIR /S & START FILE.TXT

හෝ,

tasklist | find "notepad.exe"

පයිප්පින් කිරීම ( |) එක් විධානයක ප්‍රතිදානය ගෙන එය තවත් විධානයකට දැමීම සඳහා වැඩි ය. සහ ( &) කියන්නේ මෙය ක්‍රියාත්මක කරන්න, සහ එය.


ඔබ කරන්නේ කුමක්ද යන්න සමහර පැහැදිලි කිරීමක් ඇතුළත් කිරීමට ඔබගේ පශ්චාත් සංස්කරණය කල හැකිය &සහ |කරන්න සහ සියලු දී නම්, ඔවුන් වෙනස් කරන්නේ කොහොමද? මේ වන විට මෙම සංකල්ප ගැන නුහුරු පුද්ගලයින්ට තම අවස්ථා වලදී කුමන ඒවා භාවිතා කළ යුතුද යන්න තීරණය කිරීමට නොහැකි වී තිබේ.
මිරෙක් ඩියුගෝස්

මම වගේ. මගේ නරක. මම වහාම ලිපිය සංස්කරණය කරමි. එය අගය කරන්න.
පයිඩවර්

"සොයා ගැනීම" වෙනුවට "findstr" විය යුතුය
අනු ෂිබින් ජෝශප් රාජ්

2

නැත , cd / && tree && echo %time%. දෝංකාර දෙන වේලාව පළමු විධානය ක්‍රියාත්මක කරන වේලාවයි.

නල මාර්ගයට යම් ගැටළුවක් ඇත, නමුත් එය ක්‍රියාත්මක වන ආකාරය ජනතාව දන්නා තාක් කල් එය තීරණාත්මක නොවේ.


1

තවත් එක් උදාහරණයක්: උදාහරණයක් ලෙස, අපි gulpගොඩ නැගීමේ පද්ධතිය භාවිතා කරන විට , ඒ වෙනුවට

gulp - පෙරනිමි> ගොඩනැගීම

gulp build - බිල්ඩ් ෆෝල්ඩරය සාදන්න

gulp watch - ගොනු ඔරලෝසුව ආරම්භ කරන්න

gulp dist - dist-folder සාදන්න

අපට එය එක් පේළියකින් කළ හැකිය:

cd c:\xampp\htdocs\project & gulp & gulp watch

1

ඔබ එක් පේළියක විචල්‍යයන් භාවිතා කිරීමට හෝ හැසිරවීමට උත්සාහ කරන විට ඒවායේ අන්තර්ගතය ගැන පරිස්සම් වන්න! උදා: පහත දැක්වෙන ආකාරයේ විචල්‍යයකි

PATH=C:\Program Files (x86)\somewhere;"C:\Company\Cool Tool";%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;

ඔබ එය භාවිතා කරන්නේ නම් එය පාලනය කළ නොහැකි කරදර රාශියකට මඟ පෑදිය හැකිය %PATH%

  1. අවසාන වරහන් ඔබේ කණ්ඩායම් ප්‍රකාශය අවසන් කරයි
  2. %PATH%වරහන් ගැටළුව විසඳීම සඳහා ද්විත්ව උපුටා දැක්වීම් ඔබට භාවිතා කිරීමට ඉඩ නොදේ
  3. යොමු කරන ලද විචල්‍යයක %USERPROFILE%අඩංගු වන්නේ කුමක්ද?

2
වින්ඩෝස් සීඑම්ඩී හි එක් පේළියක විධාන දෙකක් ධාවනය කිරීමට මෙයට ඇති සම්බන්ධය කුමක්ද?
පීටර් මෝර්ටෙන්සන්

1

&එක් පේළියක විධානය භාවිතා කිරීමට කවුළුවල සංකේතය භාවිතා කරන්න

C:\Users\Arshdeep Singh>cd Desktop\PROJECTS\PYTHON\programiz & jupyter notebook

අපි භාවිතා කරන ලිනක්ස් වල වගේ,

touch thisfile ; ls -lstrh

0

ඔව් තියෙනවා. එය& .

&& විධානය 1 සම්පුර්ණ වූ විට එය අසාර්ථක නොවී 2 විධානය ක්‍රියාත්මක කරයි.

& නොසලකා ක්‍රියාත්මක කරනු ඇත.


-2

එය සරලයි:&& සලකුණු සමඟ ඒවා වෙන්කර හඳුනා ගන්න . උදාහරණයක්:

echo "Hello World" && echo "GoodBye World".

"ආයුබෝවන් ලෝකය" "හෙලෝ වර්ල්ඩ්" පසු මුද්‍රණය කෙරේ.


7
සත්‍යයෙන් ස්වාධීනව, ඒ හා සමාන පැරණි පිළිතුරු දැනටමත් ඇති බව, එය තවමත් නිවැරදි නැත. &&එය වේ කොන්දේසි පළමු විධාන (errorlevel = 0) මහත්මියත් දියණි විට ක්රියාකරු, ඊළඟ විධානය පමණක් ක්රියාත්මක වන
jeb

ඇත්ත වශයෙන්. පුද්ගලයාට විධාන දෙකක් ක්‍රියාත්මක කිරීමට අවශ්‍ය නම් එය නිවැරදි වනු ඇති අතර එමඟින් සියල්ල යහපත් වනු ඇත
රාජන් ධනෝවා

1
රාජන්: ඔහු අදහස් කරන්නේ "ඊළඟ විධානය ක්‍රියාත්මක වන්නේ පළමු විධානය සාර්ථක වුවහොත් පමණි" යන්නයි.
අයිවන්

2
" Hello World පසු ආයුබෝවන් ලෝක මුද්රණය කිරීමට කටයුතු කර ඇත ලබා මුද්රණය" Hello Worldඅසමත් වූයේ නැත. ජෙබ් පැවසූ &&පරිදි කොන්දේසි සහිත ය. &පෙර සාර්ථකද නැද්ද යන්න නොසලකා විධාන ක්‍රියාත්මක කරයි.
ප්‍රණව් ඒ.
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.