Board logo

标题: [代码合集] 求高手将linxu shell代码改写成window批处理· ·有些地方不会 [打印本页]

作者: skyhello08    时间: 2012-11-6 09:09     标题: 求高手将linxu shell代码改写成window批处理· ·有些地方不会

本帖最后由 pcl_test 于 2017-6-7 21:15 编辑

这是源文件内容   
ret=0

file_path_snd="/TACTICS_AS/FTM/SND/AP/LOG"               
file_path_arch="/TACTICS_AS/FTM/SND/_ARCH/AP/LOG"
file_list=`ls -tr $file_path_snd/dnap1702_*.out`
file_id_ps=""                               
file_id_ftm=61WJG0U0               
log=/appl/jp1/psoft_asmo/_log/`basename $0 .sh`.log

err_msg=""
date_time=`date +"%y"``date +"%m"``date +"%d"``date +%H``date +%M``date +%S`

err_out()
{
        datetime=`date`

        echo "****** バッチエラー情報 開始 ******" >> $log
        echo " *DATETIME=$datetime" >> $log
        echo "--------------------------------------------------" >> $log
        echo " エラーメッセージ      = $err_msg" >> $log
        echo "--------------------------------------------------" >> $log
        echo "****** バッチエラー情報 終了 ******" >> $log
        echo "" >> $log
}

date=`date`
echo "$date:開始" >> $log

for file_id_ps in $file_list
do
        if test ! -f $file_id_ps
        then
            err_msg="$file_id_psがありません"
            err_out
            exit 4
        fi
       
        cp -p $file_id_ps $file_path_arch/`basename $file_id_ps`-$date_time

        mv $file_id_ps $file_path_snd/$file_id_ftm       

        utlsend -f $file_id_ftm -sync
        ret=$?

        if [ $ret != 0 ]
        then
            err_msg="$file_id_ftm"
            err_out
            exit 4
        fi       
        date=`date`
        echo "$date: 正常終了" >> $log
       
        rm $file_path_snd/$file_id_ftm
        sleep 60
done
exit 0
作者: skyhello08    时间: 2012-11-6 09:10

这是我简单的修改 ·· 有错误 请高手帮忙
@echo on
setlocal

set ret=0

set FILE_PATH_SND=\TACTICS_AS\FTM\SND\AP\LOG

set FILE_PATH_ARCH=\TACTICS_AS\FTM\SND\_ARCH\AP\LOG

set file_list=dnap1702_*.out

set FILE_ID_PS=""
set FILE_ID_FTM=61WJG0U0
LOG=\appl\jp1\psoft_asmo\_log\%n0.log

set err_msg=""
set date_time=%date:~,4%/%date:~5,2%/%date:~8,2%_%time:~,2%:%time:~3,2%:%time:~6,2%


set date=%date%
echo "%date%:開始" >> $log

for /f "delims=" %%a in (dir /o:-d "%FILE_PATH_SND%\dnap1702_*.out") do (
             echo %%a
        if not exist %%a (
        set err_msg="%FILE_ID_PS%がありません"
        call :SUB90_ERR_OUT
        set rtn_value=4
        goto :SUB99_EXIT
    )

    copy -p %FILE_ID_PS% %FILE_PATH_ARCH%\%nx0%FILE_ID_PS%-%date_time%

    move %FILE_ID_PS% %FILE_PATH_SND%\%FILE_ID_FTM%


    utlsend -f %FILE_ID_FTM% -sync
    SET ret=%errorlevel%

    if not %ret%==0 (
        set err_msg="HULFT送信エラーが発生しました[%ret%] ファイルID=%$FILE_ID_FTM%"
        call :SUB90_ERR_OUT
        set rtn_value=4
        goto :SUB99_EXIT
    )

    set date=%date%
    echo "%date%:正常終了" >> %log%

    del %FILE_PATH_SND%\%FILE_ID_FTM%

    ping /n 60 127.1>nul
    goto:SUB99_EXIT
)



:SUB90_ERR_OUT
set datetime=%date% %time%
echo ****** バッチエラー情報 開始 ******>> %LOG%
echo  *DATETIME=%datetime% >> %LOG%
echo -------------------------------------------------- >> %LOG%
echo  エラーメッセージ      =%err_msg% >> %LOG%
echo -------------------------------------------------- >> %LOG%
echo ****** バッチエラー情報 終了 ****** >> %LOG%
echo.>> %log%
exit /b


:SUB99_EXIT
    endlocal &&exit /b %rtn_value%
作者: skyhello08    时间: 2012-11-7 08:03

~~ 帮忙啊
作者: Seder    时间: 2012-11-7 14:31

楼主貌似没有一种结贴或者反馈的习惯,只是一味要求别人回答问题。我记得以前有回答过楼主的问题,结果被直接无视了。虽然我不是高手,也用不着这样吧。
作者: skyhello08    时间: 2012-11-8 08:28

?? 都回复了啊  是不是以前的帖子啊· ·· ·  上几次没弄明白加分啊 啥啥的·




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2