मुझे समझाने का क्या मतलब है।
मैं cmd.exe कंसोल के अंदर cmder.exe ( थ्रूinit.bat ) चलाता हूं । संलग्न GIF देखें। इस उद्देश्य के लिए मैंने cmr.batनीचे दिखाया गया एक छोटा बैच स्क्रिप्ट लिखा । यह काम करता है जैसा कि इसका मतलब था।
@echo off
%comspec% /k "C:\cmder\vendor\init.bat %*"
EXIT /B %ERRORLEVEL%
लेकिन, यह दृष्टिकोण सीधे उन्नत मोडinit.bat में चलाने की क्षमता प्रदान नहीं करता है ।
दिए गए समाधान से प्रेरित होने के कारण , मैंने एक और बैच फ़ाइल बनाई, amr.batताकि आंतरिक init.batको उन्नत मोड में चलाया जा सके ।
यहाँ की सामग्री है amr.bat
:: Automatically check & get admin rights V2
@echo off
:: BatchGotAdmin
::-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"="
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
::::::::::::::::::::::::::::::
:: START OF USER CUSTOM CODE
::::::::::::::::::::::::::::::
%comspec% /k "C:\cmder\vendor\init.bat %*" rem THIS IS MY CODE
EXIT /B %ERRORLEVEL%
amr.batचलती है init.batमें ऊंचा मोड , लेकिन नहीं रखता (बनाए रखने) कार्यशील निर्देशिका जिसमें से यह कहा जाता रहा है । नीचे दिए गए जीआईएफ स्क्रैंकास्ट इस व्यवहार को प्रदर्शित करते हैं।
init.bat कार्यशील निर्देशिका जिसमें से यह लागू किया गया था प्राप्त नहीं किया था । इसके बजाय init.batके साथ शुरू किया गया था कार्यशील निर्देशिका के स्थान के लिए सेटamr.bat (जो में रहता C:\BatScriptsनिर्देशिका)।
तो मेरे सवाल है, मैं कैसे संशोधित कर सकते हैंamr.bat स्क्रिप्ट, आदेश रखने के लिए (बनाए रखने) वर्तमान निर्देशिका जिसमें से यह लागू किया गया था में ?
कोई विचार?



