배치 파일을 통해 파일과 폴더를 삭제하는 중에 문제가 발생하면 오류를 처리하고 싶습니다. 내 대상 파일과 폴더가 동일한 서버가 아닌 원격 서버에 있습니다. 나는 pushd, popd 및 rd 명령으로 시도했다. 하지만 불행히도 그것은 errorlevel을 보내지 않습니다 **
내 현재 박쥐 파일은 다음과 같습니다.
set "Adminlogpathtofolder=\\%servername%\e$\Oracle\Middleware\user_projects\domains\Skandia\servers\AdminServer\logs\"
set "Adminpathtofolder=\\%servername%\e$\Oracle\Middleware\user_projects\domains\Skandia\servers\AdminServer\"
if exist "%Adminlogpathtofolder%" goto deleteadminlog
if not exist "%Adminlogpathtofolder%" goto noadminlog
:deleteadminlog
"pushd "%Adminlogpathtofolder%" && (rd /s /q "%Adminlogpathtofolder%" 2>nul & popd)"
if %errorlevel%==0 goto cachedeletesuccess
if NOT %errorlevel%==0 goto cachedeleteunsuccess
:cachedeletesuccess
set "cache_delete_status=success"
echo "Admin Cache Deletion Successfully"
goto exit
:cachedeleteunsuccess
set "cache_delete_status=failure"
echo "Unable to delete the cache"
goto :EOF
:noadminlog
echo "There is no log folder on the Admin Server"
goto exit
:exit
pushd "%Adminpathtofolder%"
for /f "delims=" %%i in ('dir /ad /b^|findstr /vlix "stage security logs"') do rd /s /q "%%i"
popd
if %errorlevel%==0 goto cachedeletesuccess
if NOT %errorlevel%==0 goto cachedeleteunsuccess
:cachedeletesuccess
set "cache_delete_status=success"
echo "Cache Deletion Successfully"
goto exit
:cachedeleteunsuccess
set "cache_delete_status=failure"
echo "Unable to delete the cache"
goto :EOF
누구든지 이걸 도와 줄 수 있어요 ..
다음 조건을 갖춘 나의 요구 사항
- 모든 파일 및 폴더 삭제 상위 폴더 (로그) 원격 서버 (예 : 원격 서버 경로)
"Adminlogpathtofolder = \ % 서버 이름 % \ e $ \ Oracle \ Middleware \ user_projects \ domains \ Skandia \ servers \ AdminServer \ logs \"
- 일부 제외 항목이있는 모든 파일 및 폴더 삭제 (예 : 다음 경로)
"Adminpathtofolder = \ % 서버 이름 % \ e $ \ Oracle \ Middleware \ user_projects \ domains \ Skandia \ servers \ AdminServer \"
3 개의 폴더와 그 내용 (로그, 보안, 무대)을 제외한 모든 파일과 폴더를 삭제하고 싶습니다.
- 오류를 처리하고 싶습니다. 파일이나 폴더를 삭제하는 동안 문제가 발생하면 스크립트에서 나와서 cmd에있는 오류를 반향시켜야합니다. .