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

[其他] 批处理for语句怎样替换变量内容?

1.txt文档内容为
net user abc123456789 123456 /add
我想把abc123456789换为123456789
利用下面的代码
  1. @echo off
  2. for /f "tokens=1,2,3* delims= " %%i in (1.txt) do set var=%%k
  3. set var=%var:~-9%
  4. set %%k=var
  5. echo %var%
  6. echo %%k
  7. pause
复制代码

为什么%%k显示的是%k
难道不能对%k赋值了吗?

先谢谢版主
对于版主的代码
我又点疑问
就是为什么你要用var=!var:~3!
不是利用 var=%var:~-9%
还有这里利用setlocal enabledelayedexpansion
好像没有什么作用(但是测试结果说明不能少)
我吧版主代码换为
  1. @echo off
  2. for /f "tokens=1,2,3,*" %%a in (1.txt) do (
  3.    set var=%%c
  4.    set var=%var:~-9%
  5.    echo %var%
  6.   )
  7. pause
复制代码
为什么显示echo处于关闭状态
还有我本想知道的是为什么那个%%k不能正确显示?

TOP

返回列表