找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26432|回复: 5

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

[复制链接]
发表于 2012-6-11 11:46:22 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码
发表于 2012-6-11 11:56:49 | 显示全部楼层
%%i 改为"%%~i"
试试看
 楼主| 发表于 2012-6-11 12:11:24 | 显示全部楼层
还是不行啊
 楼主| 发表于 2012-6-11 12:14:49 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2012-6-11 12:24:26 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2012-6-11 13:46:08 | 显示全部楼层
原来是我没理解到,现在可以了!非常感谢yangfengoo
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 04:59 , Processed in 0.018447 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表