කවුළුවක් නොමැතිව නියමිත කාර්යයකදී .bat ගොනුවක් ධාවනය කරන්න


146

robocopyසෑම පැයකටම ධාවනය වන කණ්ඩායම් පිටපතක් ආරම්භ කරන නියමිත කාර්යයක් මා සතුව ඇත . එය කවුළුවක් ධාවනය කරන සෑම අවස්ථාවකම ඩෙස්ක්ටොප් එකේ රොබෝකොපි ප්‍රතිදානය සමඟ දිස් වේ, එය මට දැකීමට අවශ්‍ය නැත.

නියමිත කාර්යය ක්‍රියාත්මක කිරීමෙන් කවුළුව අවම කර ගැනීමට මට හැකි විය

cmd /c start /min mybat.bat

නමුත් එය මට සෑම පැයකටම නව විධාන කවුළුවක් ලබා දෙයි. මා පුදුමයට පත් කරමින්, cmd /c“string මඟින් නියම කර ඇති විධානය ක්‍රියාත්මක කර අවසන් වේ” - මම ලියකියවිලි වරදවා වටහාගෙන තිබිය යුතුය.

සෙන්ටිමීටර කවුළුවක් නොපෙන්වා කණ්ඩායම් ස්ක්‍රිප්ට් එකක් ධාවනය කිරීමට ක්‍රමයක් තිබේද?


මම මේ එක් වඩා වඩාත් පිළිතුරක් සොයා stackoverflow.com/questions/6568736/...
Efekt

Answers:


147

වින්ඩෝස් ස්ක්‍රිප්ට් ගොනුවක් භාවිතයෙන් ඔබට එය නිහ ly ව ධාවනය කළ හැකිය. ස්ක්‍රිප්ට් එකක් අදෘශ්‍යමාන ආකාරයෙන් ධාවනය කිරීමට ධාවන ක්‍රමය ඔබට ඉඩ දෙයි. .vbsමේ වගේ ගොනුවක් සාදන්න

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing

එය උපලේඛනගත කරන්න. මෙම උදාහරණයේ දෙවන තර්කය කවුළු විලාසය සකසයි. 0 යන්නෙහි තේරුම "කවුළුව සඟවන්න" යන්නයි.

ධාවන ක්‍රමයේ සම්පූර්ණ වාක්‍ය ඛණ්ඩය :

 object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

තර්ක:

  • වස්තුව: WshShell වස්තුව.
  • strCommand: ඔබට ක්‍රියාත්මක කිරීමට අවශ්‍ය විධාන රේඛාව දැක්වෙන නූල් අගය. ක්‍රියාත්මක කළ හැකි ගොනුවට යැවීමට අවශ්‍ය ඕනෑම පරාමිතියක් ඔබ ඇතුළත් කළ යුතුය.
  • intWindowStyle: විකල්ප. වැඩසටහනේ කවුළුවේ පෙනුම පෙන්නුම් කරන පූර්ණ අගය. සෑම වැඩසටහනක්ම මෙම තොරතුරු භාවිතා නොකරන බව සලකන්න.
  • bWaitOnReturn: විකල්ප. ඔබගේ ස්ක්‍රිප්ටයේ ඊළඟ ප්‍රකාශය ඉදිරියට ගෙන යාමට පෙර වැඩසටහන ක්‍රියාත්මක වන තෙක් ස්ක්‍රිප්ට් එක බලා සිටිය යුතුද යන්න දැක්වෙන බූලියන් අගය. සත්‍ය ලෙස සකසා ඇත්නම්, වැඩසටහන අවසන් වන තුරු ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම නතර වන අතර, වැඩසටහන මඟින් ආපසු ලබා දෙන ඕනෑම දෝෂ කේතයක් ධාවනය කරයි. වැරදි ලෙස සකසා ඇත්නම් (පෙරනිමිය), වැඩසටහන ආරම්භ කළ විගසම ක්‍රියාත්මක වන ක්‍රමය ස්වයංක්‍රීයව 0 නැවත ලබා දෙයි (දෝෂ කේතයක් ලෙස අර්ථ දැක්විය යුතු නොවේ).

+1, හරියටම එකම දේ ලියා ඇත
සෑම් කොගන්

ඔබ එය මකා දැමීමට පෙර මම එය දුටුවෙමි. මම හිතන්නේ අපි දෙන්නම බොට්ස්. ;-)
splattne

1
පරිශීලක නාමය, සෑම් මට වඩා බොහෝ සෙයින් සුදුසු යැයි මම අවංකවම සිතමි. කෙසේ වෙතත් ඔබට ස්තූතියි! මා සහ ජෝන් ස්කීට් එකම වාක්‍යයක සඳහන් නොකරන්න. එය අපහාසයකි! ;-)
splattne


2
Path ඔබේ මාර්ගයේ අවකාශයන් තිබේ නම් ද්විත්ව උපුටා දැක්වීම් අවශ්‍ය යැයි මම සිතමි.
splattne

59

ඔබ මෙය නියමිත කාර්යයක් ලෙස ක්‍රියාත්මක කරනවාද? එසේ එය වෙනත් පරිශීලක ගිණුමක් ලෙස ක්‍රියාත්මක කිරීමට සකසා ඇත්නම් එය ලොග් වී ඇති පරිශීලකයාට නොපෙනේ. වින්ඩෝස් සත්‍යාපනය අවශ්‍ය අයිතම වලට (ගොනු කොටස් හෝ මුද්‍රණ යන්ත්‍ර වැනි) ස්ක්‍රිප්ටයට ජාල ප්‍රවේශයක් අවශ්‍ය නොවේ නම්, ඔබට එය “අධිකාරිය \ පද්ධතිය” ලෙස ක්‍රියාත්මක කර මුරපදය හිස්ව තබන්න. වින්ඩෝස් 7 හි, පරිශීලකයා SYSTEM ලෙස සකසා OK ඔබන්න.

(ඔබ රොබෝකොපි භාවිතා කරන්නේ නම් ඔබට සැබෑ පරිශීලකයෙකු භාවිතා කිරීමට සිදුවනු ඇත ...)

ජේ.ආර්


3
ස්තූතියි - .vbs විකල්පයට වඩා මෙය මට කරදරයක් නොවීය.
මැකෙනිර්

8
මම "Run as" පරිශීලකයා SYSTEM ලෙස සකසා ඇත (පසුව එය NT AUTHORITY \ SYSTEM ලෙස වෙනස් විය) එය මට වැඩ කළේය. මගේ නියමිත කාර්යය ක්‍රියාත්මක වන විට මට තවදුරටත් උත්පතන CMD කවුළුව නොපෙනේ. ස්තූතියි!
රයන් ස්ටිල්

1
+1, මෙය අලංකාරයි. පරිශීලක නාමය ලෙස "පද්ධතිය" ඇතුළත් කිරීමට වග බලා ගන්න, ඉන්පසු win7 ඔබ වෙනුවෙන් කරයි. ජාල කොටස් සහ වින්ඩෝස් සත්‍යාපනය අවශ්‍ය දේ සඳහා පමණක් නොව, ඔබට අන්තර්ජාලයට ජාල ප්‍රවේශය ලැබෙන බව සලකන්න.
ජොන්සම් නැවත ස්ථාපනය කරන්න මොනිකා

1
පද්ධති පරිශීලකයා සරල හා අලංකාරයි, විශිෂ්ට ඉඟියක්! +1!
මැටියෝ කොන්ටා

1
අවම වරප්‍රසාද පරිපාලන ආකෘති ක්‍රියාත්මක කිරීම බලන්න . මේ සඳහා පද්ධති ගිණුම භාවිතා කිරීම අවම වරප්‍රසාද ප්‍රතිපත්ති උල්ලං violation නය කිරීමක්ද? එසේ නම් බොහෝ අවස්ථාවන්හිදී මෙය නොකිරීමට පරිපාලකයින් දැන සිටිය යුතුය .
user34660

30

උපලේඛනගත කාර්යය "පරිශීලකයා ලොග් වී ඇත්ද නැද්ද යන්න ක්‍රියාත්මක කරන්න" ලෙස වින්‍යාස කරන්න.


7
පරිපූර්ණ! ඔබට අක්තපත්‍ර ආචයනය පවා අක්‍රිය කළ හැකි අතර, මෙය SYSTEM ක්‍රියාත්මක කිරීමට වඩා ආරක්ෂිත වේ.
බින්කි

18

ඔබට CHP (සැඟවුණු ක්‍රියාවලියක් සාදන්න) උත්සාහ කළ හැකිය , ඔබ සිතන දේ හරියටම කරයි ...

CHP.EXE mybat.bat

විධාන කවුළුවක් නොමැතිව ධාවනය වේ. පරිපූර්ණ! CMDOW වැනි පුද්ගලයින් විසින්ම සාදන ලද නමුත් මෙය වඩාත් යෝග්‍ය වේ.


පුරනය වී ඇති පරිශීලකයාගේ සන්දර්භය තුළ ඔබට කාර්යය ක්‍රියාත්මක කිරීමට අවශ්‍ය වූ විට පරිපූර්ණව ක්‍රියා කරයි ("ප්‍රේරකය: පරිශීලක සැසියට සම්බන්ධ වීම", "කාර්යය ලෙස ක්‍රියාත්මක කරන්න: පරිශීලකයින්")
සර්ජි

1
මෙය ගොඩනංවන ලද මෙවලමක් නොවේ
ජොනීරා

9

CMDOW යනු විධාන රේඛාවේ සිට කවුළු දක්වා බොහෝ දේ කිරීමට ඔබට ඉඩ සලසන භයානක මෙවලමකි.

කළ හැකි සරලම දේවලින් එකක් වන්නේ වත්මන් කවුළුව සැඟවීමයි (සාමාන්‍යයෙන් වවුල් ගොනුවේ පළමු පේළියක් ලෙස):

cmdow @ /hid

හෝ නව සැඟවුණු ක්‍රියාවලියක් ආරම්භ කරන්න

cmdow /run /hid mybat.bat 

4
මේ දෙකම සහ රොකට්මොන්කීස් යෝජනාවට නව මෙවලම් බාගත කිරීම ඇතුළත් වේ, එයින් අදහස් කරන්නේ විවිධ පුද්ගලයින්ගේ ඩෙස්ක්ටොප් පරිගණක වලට වඩා ගැළපුමකි. වින්ඩෝස් විධාන භාවිතා කිරීම වඩා හොඳය.
ඉයන් වෝගන්

සමහර ප්‍රති-වයිරස වැඩසටහන් මගින් ප්ලස් සෙන්ඩෝව "අන්තරායකර" ලෙස හඳුනාගෙන ඇත (එය අනතුරුදායක නොවේ , නමුත් සෙ.මී.
ඔටියෙල්

3
තවමත් උත්පතන කොන්සෝලය ඇත, ඉතා ඉක්මණින් ෆ්ලෑෂ් කරන්න.
උණ බම්බු

5

සමඟ පිටපත ක්‍රියාත්මක කිරීමට උත්සාහ කරන්න

start /b <command>

1
මෙය ක්‍රියාත්මක නොවේ, උපලේඛනගත කාර්යය-> තත්වය "ආරම්භ කළ නොහැකි" බව සඳහන් කරයි, එනම්: start / b C: \ file.bat: සහ: start / b "C: \ file.bat": නමුත්: C: \ file.bat: හොඳින් ක්‍රියා කරයි.
ඉයන් වෝගන්

1
startඑය වැඩසටහනක් නොවන නිසා එය විධානයකි. cmdක්‍රියාත්මක කිරීමට ඇති වැඩසටහන /c start /b <file>ලෙස සහ තර්කය ලෙස ඔබ නියම කළ යුතුය . කෙසේ වෙතත්, මෙය තවමත් ක්‍රියාත්මක නොවන්නේ එය තවමත් කොන්සෝල කවුළුවක් නිර්මාණය cmdකර තිරයේ කළු කවුළුවක් ෆ්ලෑෂ් කරන බැවිනි.
සයිනෙටෙක්

1
මෙය නව කවුළුවක් නිර්මාණය නොකරන බව yn සයිනෙටෙක් සමඟ තහවුරු කළ හැකිය, නමුත් එය ආරම්භ කිරීම සඳහා ඔබට තවමත් කොන්සෝල කවුළුවක් විවෘතව තිබිය යුතුය. මෙය සැබවින්ම පහසු විධානයකි, නමුත් උපලේඛනගත කාර්යයන් සමඟ ඉල්ලූ පරිදි භාවිතා කළ නොහැක.
ජොනතන්

5

ඔබට කණ්ඩායම් ගොනුවට කෙටිමඟක් සෑදිය හැකිය, අවම කිරීම ආරම්භ කිරීමට කෙටිමඟ සකසන්න (කෙටිමං වල ගුණාංගවල, 'කෙටිමං' පටිත්ත), ඉන්පසු කෙටිමඟ ආරම්භ කිරීමට කාර්යය සකසන්න.

වැදගත් : ඔබ කෙටිමඟට යන මාර්ගය අතින් ක්‍රියාකරන පෙළ ක්ෂේත්‍රයට ටයිප් කිරීමෙන් '.lnk' දිගුව සමඟ සම්පූර්ණ කළ යුතුය; ඔබ එය ගවේෂණය කිරීමට උත්සාහ කරන විට, එය වනු ඇත උපකාරශීලී ම කුමක් වුවත්, කෙටි මාර්ග ලකුණු කිරීමට වි.


මෙය වින්ඩෝස් 10 x64 හි ක්‍රියා නොකරයි, මෙය උත්පතන ලබා දෙයි "ඔබට මෙම ගොනුව විවෘත කිරීමට අවශ්‍ය වන්නේ කෙසේද?"
ජනවාරි

1

මෙම ප්‍රශ්නයට දැනටමත් වින්ඩෝස් වලට ආවේණික වූ හොඳ විභේදනයකින් පිළිතුරු ලබා දී ඇති අතර එය වඩාත් අනුකූල විය යුතු බව මම තේරුම් ගතිමි.

@ ස්ප්ලැට්න්ගේ ප්‍රකාශයට මා එකඟ නොවන බව (නමුත් ඔහුගේ සත්‍ය පිළිතුර නොවේ) - අනෙක් යොමු කරන ලද නූල්වල යෝජනාව ගෞරවය ලැබිය යුතු යැයි මට කීමට අවශ්‍ය විය. එම පිළිතුරට ස්ක්‍රිප්ට් වෙනත් පරිශීලකයෙකු ලෙස (SYSTEM) ධාවනය කිරීම ඇතුළත් වන අතර එය ස්ක්‍රිප්ට් මූල ප්‍රවේශය ලබා දීමට සමාන වේ. ROBOCOPYජාල ප්‍රවේශය අවශ්‍ය වන (ජෝන් රෙනී විසින් යොමු කරන ලද) වැනි රැකියා සඳහා ද එය අසාර්ථක වනු ඇත .

මම මීට CMDOWපෙර කවදාවත් උත්සාහ කර නැත , නමුත් මම තවත් සමාන විභේදනයක් ඉදිරිපත් කිරීමට කැමැත්තෙමි, එය [වින්ඩෝස් හි ස්වදේශීයව ස්ථාපනය කර නොතිබුණද] තවමත් බොහෝ අනුවාදයන්ට ඉතා පහසුවෙන් ගෙන යා හැකි අතර 32 සහ 64-බිට් අනුවාද දෙකෙන්ම පැමිණේ. NirCmd .

NirCmd යනු විවිධාකාර විකල්පයන් සහිත ඉතා ප්‍රබල මෙවලමක් වන අතර, වඩාත්ම ප්‍රයෝජනවත් වන්නේ, පහත සඳහන් දෑ සරලව ක්‍රියාත්මක කිරීමෙන් සැඟවුණු විධාන කවුළු දියත් කිරීමේ හැකියාව මම පෞද්ගලිකව සොයා ගනිමි:

c:\path\to\nircmd.exe exec hide "c:\path\to\mybat.bat"

NirCmd විධාන යොමුexec කොටසේ සිට :

exec [show/hide/min/max] [application + command-line]

යෙදුමක් ධාවනය කරන අතර ක්‍රියාත්මක කරන ලද යෙදුම සඳහා විධාන රේඛා පරාමිතීන් එකක් හෝ කිහිපයක් සඳහන් කරන්න. [Show / hide / min / max] පරාමිතිය මඟින් ක්‍රියාත්මක වන යෙදුම දෘශ්‍යමාන වේද නැද්ද යන්න නියම කරයි. 'සඟවන්න' නියම කර ඇත්නම්, ධාවනය වන යෙදුම පරිශීලකයාට නොපෙනේ. 'උපරිම' නියම කර ඇත්නම්, ක්‍රියාත්මක වන යෙදුම් කවුළුව උපරිම කරනු ලැබේ. 'මිනි' නියම කර ඇත්නම්, ධාවනය වන යෙදුම් කවුළුව අවම වේ.

සංස්කරණය කරන්න: මම ROBOCOPYරැකියාවක් ක්‍රියාත්මක කිරීමට උත්සාහ කළ අතර මෙම පිළිතුරෙහි ක්‍රමවේදය උත්සාහ කළෙමි. ජාල ප්‍රවේශ වරප්‍රසාද සංස්කරණය කිරීමෙන් පසුවද එය ක්‍රියාත්මක නොවීය. මම ස්ක්‍රිප්ට් එක දෙවරක් ක්ලික් කිරීමට උත්සාහ කළ අතර එය ක්‍රියාත්මක කිරීමට නොහැකි විය, නමුත් එය ලබා ගත හැකි වූයේ ඉහළ විධාන විමසුමක් යටතේ පමණි. මම කණ්ඩායම් ගොනුවට කෙටිමඟක් සාදා එය පරිපාලක ලෙස ධාවනය කර ඇති අතර එය දෙවරක් ක්ලික් කිරීමෙන් එය ක්‍රියාත්මක කිරීමට හැකි විය, නමුත් මම එය අවසන් කළ ක්‍රමය වූයේ එය SYSTEM ලෙස සැඟවීමයි (මම දනිමි, මම දනිමි) - නමුත් ROBOCOPYකණ්ඩායම් ගොනුවට නිවැරදි අවසරයන් ඇති තාක් කල් එය වටින දේ සමඟ ක්‍රියා කරයි .

2 වන සංස්කරණය: කිසියම් හේතුවක් නිසා එය SYSTEM ලෙස ක්‍රියා නොකරනු ඇත (බොහෝ විට කලින් සඳහන් කළ ජාල ප්‍රවේශ ප්‍රවේශය) - මම මෙය දුටුවේ ඇත්ත වශයෙන්ම ROBOCOPY/ L ධජය නොමැතිව ධාවනය කිරීමෙන් පසුව පමණි , එය මූලික වශයෙන් අනුකරණයක් වන අතර [පෙනෙන හැටියට] ඇත්ත වශයෙන්ම දුරස්ථ පද්ධතියට සම්බන්ධ වන්න, නමුත් මම කණ්ඩායම් වර්‍ගය ඉහළම වරප්‍රසාද සහිතව ධාවනය කර සැඟවුණු කොටුව සලකුණු කළ විට, විධාන කවුළුවක් නොපෙන්වා පසුබිමේ ලොග් වූ පරිශීලකයා ලෙස මට එය ක්‍රියාත්මක කළ හැකිය, මෙය ඕනෑම කෙනෙකුට වටිනවා .



-2

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


-2

ප්‍රතිදානය සැඟවීමට (කවුළුව නොවුනත්), මෙය ඔබගේ කණ්ඩායම් ගොනුවේ ආරම්භයට එක් කරන්න:

@echo off
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.