标题: 请教让修改&的方法(已解决)
[打印本页]
作者: jiulong
时间: 2008-3-26 07:20
标题: 请教让修改&的方法(已解决)
a.txt内容如下:
ppp&abcd &a&8500
批处理脚本如下:
for /f "tokens=*" %%i in ('type a.txt') do (
set var=%%i
set var=%var:^&=^^&%
)
echo %var%
pause
执行结果为:
'ppp' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'abcd' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
.......
我想实现的目的是:把&符号前自动加上^符号,因为a.txt文本中的内容是随机的,如果是固定的我手动改就行了。
[
Last edited by jiulong on 2008-4-15 at 08:29 AM ]
作者: Climbing
时间: 2008-3-26 16:41
...
set var="%%i“
set var=!var:&=^&!
set var=!var:"=!
...
试试这样吧。
作者: jiulong
时间: 2008-3-26 16:47
'&!' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
!var:"=!
不行啊
作者: Climbing
时间: 2008-3-26 17:13
注意启用延迟环境变量扩展:
setlocal enabledelayedexpansion
[
Last edited by Climbing on 2008-3-26 at 05:20 PM ]
作者: Climbing
时间: 2008-3-26 17:19
完整的批处理应该类似这样:
@echo off & setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (a.txt) do (
set var="%%i"
set var=!var:&=^&!
set var=!var:"=!
echo "!var!"
)
echo "%var%"
pause
我没有试批处理,只是在命令行下简单试了一下。cmd的功能太差,特殊字符不好处理。例如在for /f中,你永远无法实现用"(半角双引号)作为分隔符。
作者: jiulong
时间: 2008-4-10 07:44
'&' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
"var:"
"var:"
还是不行类。
作者: lxmxn
时间: 2008-4-13 07:01
试试下面这个?
@Echo off & SetLocal EnableDelayedExpansion
for /f "delims=" %%a in (a.txt) do (
set "str=%%a"
set "str=!str:&=^&!"
echo.!str!
)
goto:EOF