Board logo

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

作者: skyhello08    时间: 2012-11-5 14:22     标题: `ls -tr在批处理里怎么实现· 具体做法进入可看到代码 辛苦

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

完整的改动,高手帮下忙·
作者: skyhello08    时间: 2012-11-5 14:22

file_path_snd="/TACTICS_AS/FTM/SND/AP/LOG"
这个定义忘记写上了· · ··  · · for语句怎么实现啊· 出高手啊  · ··
作者: BAT-VBS    时间: 2012-11-5 18:56

  1. @echo off
  2. set "file_path_snd=/TACTICS_AS/FTM/SND/AP/LOG"
  3. for /f "delims=" %%a in ('dir /o:-d "%file_path_snd%"') do (
  4.     echo %%a
  5. )
  6. pause
复制代码

作者: skyhello08    时间: 2012-11-6 08:10

回复 3# BAT-VBS


    这条语句在下面都在调用原来 for里的FILE_ID_PS     你这种写法在下面应该怎么调用?
作者: BAT-VBS    时间: 2012-11-6 08:11

回复 4# skyhello08


    %%a
作者: skyhello08    时间: 2012-11-6 08:14

回复 5# BAT-VBS


    dnap1702_*.out`
  哪去了啊  啥意思啊?
作者: skyhello08    时间: 2012-11-6 08:15

回复 6# skyhello08


    /f "delims="    啥意思· ~?
作者: BAT-VBS    时间: 2012-11-6 08:16

回复 6# skyhello08
  1. @echo off
  2. set "file_path_snd=C:\test"
  3. for /f "delims=" %%a in ('dir /o:-d "%file_path_snd%\dnap1702_*.out"') do (
  4.     echo %%a
  5. )
  6. pause
复制代码

作者: skyhello08    时间: 2012-11-6 08:17

老师 高手··· · ·   有QQ 吗
作者: skyhello08    时间: 2012-11-6 08:20

回复 8# BAT-VBS


    想加你的QQ  有些问题想请教··   可不吗?
作者: BAT-VBS    时间: 2012-11-6 08:29

回复 10# skyhello08


    没有QQ,有问题就在论坛发帖吧。
作者: skyhello08    时间: 2012-11-6 08:35

回复 11# BAT-VBS


    你教我的这种打法我在我的整个程序巡行 不通··
作者: skyhello08    时间: 2012-11-6 08:36

要不整个发给你 你帮我看下?
作者: skyhello08    时间: 2012-11-6 08:44

回复 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


这是源文件·  ·
作者: skyhello08    时间: 2012-11-6 08:45

回复 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%
   
   
这是我大致改动的
作者: BAT-VBS    时间: 2012-11-6 20:13

回复 15# skyhello08


    把报错信息告诉我
作者: skyhello08    时间: 2012-11-7 08:02

回复 16# BAT-VBS


    就是for那有问题· ·· 走不了 不执行
作者: BAT-VBS    时间: 2012-11-7 08:31

回复 17# skyhello08


    我需要看到报错信息
作者: skyhello08    时间: 2012-11-8 08:29

回复 18# BAT-VBS


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




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