Пакетный файл Oracle 11g с параметром и Powershell 4.0 - PullRequest
0 голосов
/ 18 октября 2018

У меня Windows 7. Я новичок в пакетном файле с параметром и PowerShell 4.0.У меня есть 5 данных отдела и 5 папок для каждого отдела, в котором хранятся данные.Я создал 5 пакетных файлов оракула для каждого отдела.Теперь я хочу иметь один пакетный файл вместо 5. Причина, по которой я это говорю, заключается в том, что в конечном итоге я получу 50 отделов в будущем и не хочу создавать 50 пакетных файлов.5 пакетных файлов идентичны, за исключением расположения данных, журналов, поврежденных и сбрасываемых файлов.Я хочу использовать параметр для местоположения, журнала, сбоя и сброса в командном файле и вызвать его в PowerShell 4.0.Как я это сделаю?Ниже приведены 5 пакетных файлов, например:

set ctl_dir=c:\rob\Control_files
set data_dir=c:\rob\Dept1_Extract_data
set log_dir=c:\Dept1_LOG
set bad_dir=c:\rob\Dept1_BAD
set discard_dir=c:\rob\Dept1_DISCARD
set svr_login=myuser/mypass

sqlldr %svr_login% control=%ctl_dir%\accdnt_f.ctl data=%data_dir%\accdnt_f.txt log=%log_dir%\accdnt_f.log direct=true bad=%bad_dir%\accdnt_f.bad discard=%discard_dir%\accdnt_f.dsc
sqlldr %svr_login% control=%ctl_dir%\accdnt_e.ctl data=%data_dir%\_accdnt_e.txt log=%log_dir%\accdnt_e.log direct=true bad=%bad_dir%\accdnt_e.bad discard=%discard_dir%\accdnt_e.dsc
sqlldr %svr_login% control=%ctl_dir%\action_f.ctl data=%data_dir%\action_f.txt log=%log_dir%\action_f.log direct=true bad=%bad_dir%\action_f.bad discard=%discard_dir%\action_f.dsc
sqlldr %svr_login% control=%ctl_dir%\action_e.ctl data=%data_dir%\action_e.txt log=%log_dir%\action_e.log direct=true bad=%bad_dir%\action_e.bad discard=%discard_dir%\action_e.dsc

Второй пакетный файл идентичен, за исключением того, что Dept1 изменяется на Dept2 и так далее до Dept5.Как я буду это делать?Сначала используйте параметр для пути к данным, а 2-й вызов командного файла в powershell, чтобы он мог загрузить данные 5 отделов.Спасибо

Вот мой код PowerShell.Я просто даю вам груз первого Dept1:

$params_Dept1 = "c:\rob\Dept1_Batch_file.bat"
$params_Dept2 = "c:\rob\Dept2_Batch_file.bat"
$params_Dept3 = "c:\rob\Dept3_Batch_file.bat"
$params_Dept4 = "c:\rob\Dept4_Batch_file.bat"`
$params_Dept5 = "c:\rob\Dept5_Batch_file.bat" 

echo "Load Dept1 data”
$exitCode = (Start-Process -wait -PassThru -NoNewWindow -argumentlist sqlldr $params_Dept1).ExitCode
IF ($exitCode -eq 0)`{` 

Echo "SUCCESSFULL..."
$StgLoad_logfile | Out-file C:\rob\StgLoad_logfile.txt
echo 'Finish loading Dept1 data...'
echo 'Finish loading Dept1 data...'}
Else{
echo 'UNSUCCESSFUL"
$StgLoad_logfile | Out-file C:\rob\StgLoad_logfile.txt
EXIT
}

Любая помощь будет очень признателен.Спасибо

...