Board logo

标题: [其他] 【已结】如何把符号当正常的用 [打印本页]

作者: lockmove    时间: 2009-1-27 21:59     标题: 【已结】如何把符号当正常的用

题目实在不会取,不好意思了
比如有1.txt内容
1 2 3 | 4 5 abc|def
  1. for /f  "delims=," %%i in (1.txt) do echo %%i
复制代码

这个是正确的
但是我要
  1. for /f "delims=," %%i in (1.txt) do set str=%%i
  2. echo %str%
复制代码

他就有问题了
应该就是|的问题
作者: pusofalse    时间: 2009-1-27 22:57

  1. @echo Off& setlocal EnableDelayedExpansion
  2. For /f "delims=" %%a in (a.txt) do set "str=%%a"
  3. Echo !str!
  4. :: For %%a in ("%str%") do echo %%~a
  5. Pause>nul & Exit /b
复制代码

作者: taojunyi    时间: 2009-1-27 23:13

这个是延迟变量的原因,不是别的。
setlocal enabledelayedexpansion
@echo off
for /f "delims=," %%i in (1.txt) do (
echo %%i
set str=%%i
echo !str!)
pause
作者: lockmove    时间: 2009-1-28 10:20

可能是我题意不清
我把全部都写出来吧.
1.bat内容
  1. airserv-ng -c 1 -d "commview.dll|debug"
复制代码
change.bat内容
  1. echo off&setlocal enabledelayedexpansion
  2. set /p a=频道:
  3. for /f  "delims=" %%i in (1.bat) do set str=%%i
  4. echo !str!
  5. for /f "tokens=1,2,3*" %%i in ("%str%") do (echo %%i %%j %a% %%l>1.bat)
  6. pause
复制代码
我觉得这里延时不延时无所谓.
我要实现的目的是修改1.bat里的第3个数字
我试过了.没了"|"就可以
就是加了"|"才有错误.
作者: wxcute    时间: 2009-1-28 11:02

还好你写出来了,不然搞半天也不会成功,因为有引号与没有引号差别挺大。
  1. @echo off
  2. set /p a=频道:
  3. for /f  "delims=" %%i in (1.bat) do set str=%%i
  4. echo %str%
  5. for /f "usebackq tokens=1,2,3*" %%i in ('%str%') do (echo %%i %%j %a% %%l>1.bat)
  6. pause
复制代码

作者: lockmove    时间: 2009-1-28 14:54     标题: 回复 5楼 的帖子

谢谢版主,了解了.在没有usebackq 的时候 即使加了" "  还是可能认为是命令的吧?
作者: defanive    时间: 2009-1-28 15:13

版主出手了,我就不看贴了。。。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2