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

[其他] 【已结】如何把符号当正常的用

题目实在不会取,不好意思了
比如有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%
复制代码

他就有问题了
应该就是|的问题

  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
复制代码
心绪平和,眼藏静谧。

TOP

这个是延迟变量的原因,不是别的。
setlocal enabledelayedexpansion
@echo off
for /f "delims=," %%i in (1.txt) do (
echo %%i
set str=%%i
echo !str!)
pause

TOP

可能是我题意不清
我把全部都写出来吧.
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个数字
我试过了.没了"|"就可以
就是加了"|"才有错误.

TOP

还好你写出来了,不然搞半天也不会成功,因为有引号与没有引号差别挺大。
  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
复制代码

TOP

回复 5楼 的帖子

谢谢版主,了解了.在没有usebackq 的时候 即使加了" "  还是可能认为是命令的吧?

TOP

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

TOP

返回列表