ORACLE_HOME (透過 PATH 環境變數)exp.exe / imp.exe 執行@echo off
setlocal enabledelayedexpansion
color 0a
:detect_oracle_home
:: 從 PATH 解析 Oracle 安裝路徑
for /f "tokens=2 delims==" %%a in ('path') do (
set "str=%%a"
set str=!str: =+!
for %%i in (!str!) do (
set "var=%%i"
set var=!var:+= !
echo !var!>> change.txt
for /f "delims=" %%i in ('findstr "Oracle" change.txt') do set var=%%i
)
)
del /q change.txt
:menu
set /p choice=1.備份 2.還原 3.離開 請選擇:
if "%choice%"=="1" goto exp
if "%choice%"=="2" goto imp
exit /b
:exp
set /p file=請輸入匯出檔名 (不含路徑):
set /p dpath=請輸入儲存路徑 (含磁碟代號,如 D:\backup):
"%var%\bin\exp.exe" userid=smhr/smhr file="%dpath%\%file%.dmp" full=n
goto continue_prompt
:imp
set /p file=請拖入欲匯入的 .dmp 檔完整路徑:
"%var%\bin\imp.exe" userid=smhr/smhr file="%file%" full=y
goto continue_prompt
:continue_prompt
set /p choice=1.繼續操作 2.離開 請選擇:
if "%choice%"=="1" goto menu
exit /b
for /f 迴圈拆解 PATH,配合 findstr 過濾含 "Oracle" 的路徑setlocal enabledelayedexpansion 配合 !var! 即時取值smhr/smhr,實務建議改為參數傳入或加密儲存full=n:僅匯出指定使用者物件 (匯出模式)full=y:完整匯入 (含結構與資料)backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%.dmp%errorlevel%) 並寫入 Log 檔中小型資料庫、開發/測試環境、無圖形介面伺服器、需快速手動備份還原的場合。