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

[文本处理] 运行脚本时为何提示 findstr:无法打开

本帖最后由 CrLf 于 2012-6-11 12:25 编辑

本人菜鸟,刚学批处理,请教一下,下面的代码执行过程中提示findstr无法打开%i,是什么原因呢?
  1. @echo off
  2. for /f "delims=" %%i in ('dir /a-d /b /s "%~dp0symbol.css"') do (
  3. findstr "PCDS" %%i || goto wlj2
  4. goto wlj1
  5. :wlj2
  6. findstr "CDS_LMAN_SYM_OUTLINE" %%i >$
  7. for /f "delims=, tokens=2,3" %%j in ($) do (
  8. setlocal enabledelayedexpansion
  9. set /a "b=%%j+20"
  10. set /a "c=%%j+50"
  11. echo P "PART_NUMBER" "?" -%%k !b! 0 0 32 0 0 0 0 0 1 0 0 >>$
  12. echo P "$LOCATION" "?" -%%k !c! 0 0 32 0 0 0 0 0 1 0 0 >>$
  13. endlocal
  14. )
  15. findstr /v "CDS_LMAN_SYM_OUTLINE" %%i >>$
  16. move $ %%i
  17. )
  18. :wlj1
  19. exit
复制代码

%%i 改为"%%~i"
试试看

TOP

还是不行啊

TOP

本帖最后由 CrLf 于 2012-6-11 12:26 编辑

估计是%%i的值在findstr "PART" %%i || goto wlj2 之后就改变了。我增加了一个变量a就可以了
  1. @echo off
  2. for /f "delims=" %%i in ('dir /a-d /b /s "%~dp0symbol.css"') do (
  3. set a=%%i
  4. findstr "PART" %%i || goto wlj2
  5. goto wlj1
  6. :wlj2
  7. findstr "CDS_LMAN_SYM_OUTLINE" %a% >$
  8. for /f "delims=, tokens=2,3" %%j in ($) do (
  9. setlocal enabledelayedexpansion
  10. set /a "b=%%j+20"
  11. set /a "c=%%j+50"
  12. echo P "PART_NUMBER" "?" -%%k !b! 0 0 32 0 0 0 0 0 1 0 0 >>$
  13. echo P "$LOCATION" "?" -%%k !c! 0 0 32 0 0 0 0 0 1 0 0 >>$
  14. endlocal
  15. )
  16. findstr /v "CDS_LMAN_SYM_OUTLINE" %a% >>$
  17. move $ %a%
  18. set "%%i=%a%"
  19. )
  20. :wlj1
  21. exit
复制代码

TOP

  1. @echo off
  2. for /f "delims=" %%i in ('dir /a-d /b /s "%~dp0symbol.css"') do (
  3. findstr "PCDS" "%%~i" && goto wlj1
  4. findstr "CDS_LMAN_SYM_OUTLINE" "%%~i" >$
  5. for /f "delims=, tokens=2,3" %%j in ($) do (
  6. setlocal enabledelayedexpansion
  7. set /a "b=%%j+20"
  8. set /a "c=%%j+50"
  9. echo P "PART_NUMBER" "?" -%%k !b! 0 0 32 0 0 0 0 0 1 0 0 >>$
  10. echo P "$LOCATION" "?" -%%k !c! 0 0 32 0 0 0 0 0 1 0 0 >>$
  11. endlocal
  12. )
  13. findstr /v "CDS_LMAN_SYM_OUTLINE" %%i >>$
  14. move $ %%i
  15. )
  16. :wlj1
  17. exit
复制代码

TOP

原来是我没理解到,现在可以了!非常感谢yangfengoo

TOP

返回列表