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




for /f "delims= tokens=1,*" %%k in (source.mac) do (

if !count!==24  (
endlocal

echo if !num!==8  echo height_num=1-0.%%%%i ^>^>h_%%%%i_s_%%%%j.txt>>ansys_process.bat
                 )

if !count! neq 24 (
endlocal
echo %%k  %%l>>ansys_process.bat
)
echo.>nul
set /a count+=1
)

要测试的source.mac 的内容如下.虽然是批处理的代码
@echo off
setlocal enabledelayedexpansion

set  work_directory=D:\Documents\Desktop\test\


for /f "skip=1 delims=> " %%k in (D:\Documents\Desktop\test\h_1_s_1.mac) do (

if !num!==1   echo /filname
if !num!==2   echo /cwd
if !num!==8  echo height_num=2
if !num!==9  echo speed_num=3

if !num! neq 1  (
if !num! neq 2  (
if !num! neq 8  (
if !num! neq 9 echo test
                 )
echo.>nul
echo.>nul        )
echo.>nul        )
echo !num!
echo.
set /a num+=1


                                                                             )


pause



rem echo it is the end of the code . do not believe you can see it on your screen

TOP

如果把上面if 内的endlocal去除的话.就得不到正确的结果.同时endlocal不能结束 !count!的替换.

TOP

返回列表