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

[文件操作] 批处理对for语句的%%i/%%a直接进行字符串截取为何不能实现

本帖最后由 pcl_test 于 2016-9-3 15:01 编辑

看了此强帖:http://www.bathome.net/viewthread.php?tid=40&highlight=%D7%D6%B7%FB%BD%D8%C8%A1
做以下练习
  1. @echo off
  2. for /f %%i in (ip) do (
  3. echo %%i:~0,10%%
  4. )
  5. pause
复制代码
文件ip内容为
  1. ABCDEFG1192.168.10.1
  2. ABCDEFG2192.168.10.2
  3. ABCDEFG3192.168.10.3
复制代码
执行结果如下:
  1. ABCDEFG1192.168.10.1:~0,10%
  2. ABCDEFG2192.168.10.2:~0,10%
  3. ABCDEFG3192.168.10.3:~0,10%
  4. 请按任意键继续. . .
复制代码
我哪里错了?请指教

只能用在SET定义出来的变量..

[ 本帖最后由 bhsx 于 2009-10-2 20:18 编辑 ]

TOP

文件IP是那么写进去的吗?
应该是、、忘了、、、、、

TOP

  1. @echo off
  2. for /f %%i in (ip) do (
  3. call set s=%%i%%
  4. call set b=%%s:~0,8%%
  5. call echo %%b%%
  6. )
  7. pause
复制代码

TOP

  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. for /f %%i in (ip) do (
  3. set i=%%i
  4. echo !i:~0,10!
  5. )
  6. pause
复制代码
TRY,没试过

TOP

原帖由 Seter 于 2009-10-2 21:05 发表
@echo off&setlocal ENABLEDELAYEDEXPANSION
for /f %%i in (ip) do (
set i=%%i
echo !i:~0,10!
)
pauseTRY,没试过

测试过  可以的
请问“!...!”这个如何理解

TOP

去论坛搜索一下叭...这个我解释不清楚...
关于setlocal:   http://bbs.bathome.net/viewthread.php?tid=2051&highlight=setlocal
我感觉!也可以当作普通的%来使用...不过这种情况多用在嵌套里...

[ 本帖最后由 Seter 于 2009-10-4 07:35 编辑 ]

TOP

返回列表