[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[代码合集] `ls -tr在批处理里怎么实现· 具体做法进入可看到代码 辛苦

set FILE_ID_PS=""
set file_list=`ls -tr %FILE_PATH_SND%\dnap1702_*.out`
for %FILE_ID_PS% in %file_list% do(

完整的改动,高手帮下忙·

file_path_snd="/TACTICS_AS/FTM/SND/AP/LOG"
这个定义忘记写上了· · ··  · · for语句怎么实现啊· 出高手啊  · ··

TOP

回复 3# BAT-VBS


    这条语句在下面都在调用原来 for里的FILE_ID_PS     你这种写法在下面应该怎么调用?

TOP

回复 5# BAT-VBS


    dnap1702_*.out`
  哪去了啊  啥意思啊?

TOP

回复 6# skyhello08


    /f "delims="    啥意思· ~?

TOP

老师 高手··· · ·   有QQ 吗

TOP

回复 8# BAT-VBS


    想加你的QQ  有些问题想请教··   可不吗?

TOP

回复 11# BAT-VBS


    你教我的这种打法我在我的整个程序巡行 不通··

TOP

要不整个发给你 你帮我看下?

TOP

回复 12# skyhello08


   
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


这是源文件·  ·

TOP

回复 12# skyhello08


    @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%
   
   
这是我大致改动的

TOP

回复 16# BAT-VBS


    就是for那有问题· ·· 走不了 不执行

TOP

回复 18# BAT-VBS


    我用的不是国内语言操作系统,报错看不懂·· · · · ·

TOP

返回列表