[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
代码前后矛盾,不懂楼主的目的是生成什么样的结果呢?

TOP

那代码没什么问题,不过看到 1.txt 内容中有大量的 !,估计是你开了变量延迟导致的?
在这段代码前加一句 endlocal 或 setlocal disabledelayedexpansion 关闭变量延迟应可解决问题。

反正我的代码和你的代码输出内容是完全相同的:
  1. @echo off
  2. (for /f "tokens=1* delims=@" %%a in ('findstr /blc:" 菜单:" 1.txt') do echo %%b)>3.txt
  3. pause
复制代码

TOP

变量延迟是在解释 %%a 之后才解释变量,还是用实例解释吧:
  1. @echo off
  2. for /f "delims=" %%a in ("abc !tmp! def") do (
  3.    echo 不开变量延迟:%%a
  4.    setlocal enabledelayedexpansion
  5.    echo 打开变量延迟:%%a
  6. )
  7. pause
复制代码

TOP

回复 8# yyykkkyyyy


    因为 copy 样本到本地的时候在 txt 里看到行首有个空格,所以才在 findstr 的搜索关键词中加上的~

TOP

返回列表