本帖最后由 meiszp 于 2024-6-28 09:36 编辑
写了一个批处理在远程服务器上运行,系统为windows server 2003 ,远程运行,有时提示“括弧不对称”,输出也是错误的。等一会再运行,可能需要多次尝试,却又不提示,能正确运行。
检查过括弧匹配,set /p 设置也使用了双引号,避免参数里的括弧导致,就是不知原因何在?求指教,谢谢!- @echo off
- setlocal enabledelayedexpansion
-
- rem 先清空Log.txt
- echo off >Log.txt
-
- for %%f in (*.dat) do (
- set "filename=%%~nf"
- echo.
- echo.>>Log.txt
- echo ******************** !filename!.dat ********************
- echo ******************** !filename!.dat ********************>>Log.txt
- set "start2=!time!"
- set /a "startTime2=(1!time:~0,2!-100)*3600+(1!time:~3,2!-100)*60+(1!time:~6,2!-100)"
-
- seal2d.exe !filename!.dat
-
- set "end2=!time!"
- rem 格式化显示运行时间
- set /a "endTime2=(1!time:~0,2!-100)*3600+(1!time:~3,2!-100)*60+(1!time:~6,2!-100)"
- set /a "elapsed2=endTime2-startTime2"
- set /a "hh2=elapsed2/3600"
- set /a "mm2=(elapsed2%%3600)/60"
- set /a "ss2=elapsed2%%60"
- echo.
-
- findstr /m "Program STOP" !filename!.erg
- if !errorlevel! neq 1 (
- echo 网格太多,程序停止,请查看!filename!.erg文件!
- echo 网格太多,程序停止,请查看!filename!.erg文件!>>Log.txt
- ) else (
- findstr /m "NaN" !filename!.3dg !filename!.3ds !filename!.erg !filename!.plo !filename!.res !filename!.sav !filename!.val
- findstr /m "NaN" !filename!.3dg !filename!.3ds !filename!.erg !filename!.plo !filename!.res !filename!.sav !filename!.val >>Log.txt
- if !errorlevel! neq 1 (
- echo 以上输出文件包含"NaN"错误,请检查输入数据!
- echo 以上输出文件包含"NaN"错误,请检查输入数据!>>Log.txt
- ) else (
- echo SEAL2D计算开始时间:!start2!
- echo SEAL2D计算开始时间:!start2!>>Log.txt
- echo SEAL2D计算结束时间:!end2!
- echo SEAL2D计算结束时间:!end2!>>Log.txt
- echo SEAL2D计算时长:!hh2!小时 !mm2!分 !ss2!秒
- echo SEAL2D计算时长:!hh2!小时 !mm2!分 !ss2!秒>>Log.txt
-
- rem SEAL3D计算
- echo.
- set "start3=!time!"
- echo SEAL3D计算开始时间:!start3!
- echo SEAL3D计算开始时间:!start3!>>Log.txt
- set /a "startTime3=(1!time:~0,2!-100)*3600+(1!time:~3,2!-100)*60+(1!time:~6,2!-100)"
-
- seal3d.exe !filename!.dat
-
- rem 格式化显示运行时间
- set "end3=!time!"
- set /a "endTime3=(1!time:~0,2!-100)*3600+(1!time:~3,2!-100)*60+(1!time:~6,2!-100)"
- set /a "elapsed3=endTime3-startTime3"
- set /a "hh3=elapsed3/3600"
- set /a "mm3=(elapsed3%%3600)/60"
- set /a "ss3=elapsed3%%60"
-
- echo.
- echo SEAL3D计算结束时间:!end3!
- echo SEAL3D计算结束时间:!end3!>>Log.txt
- echo SEAL3D计算时长:!hh3!小时 !mm3!分 !ss3!秒
- echo SEAL3D计算时长:!hh3!小时 !mm3!分 !ss3!秒>>Log.txt
- echo.
- findstr /m "NaN" !filename!.3de
- findstr /m "NaN" !filename!.3de>>Log.txt
-
- if !errorlevel! neq 1 (
- echo 3de文件包含"NaN"错误,请检查输入数据!
- echo 3de文件包含"NaN"错误,请检查输入数据!>>Log.txt
- ) else (
- echo 3de文件无误!
- echo 3de文件无误!>>Log.txt
- )
-
- )
- )
- )
-
- endlocal
- echo.
- pause
复制代码
|