标题: [文本处理] [已解决]批处理文本替换问题 [打印本页]
作者: pd1 时间: 2021-2-15 20:09 标题: [已解决]批处理文本替换问题
本帖最后由 pd1 于 2021-2-16 23:22 编辑
- @echo off
- setlocal enabledelayedexpansion
-
- set "str=xxx123456yyy"
- echo !str!
- set /p Choice1=请输入:
- set "str=!str:123=%Choice1%!"
- echo !str!
- set /p Choice2=请输入:
- set "str=!str:456=%Choice2%!"
- echo !str!
-
- pause
复制代码
这样替换文本是可以的。- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (1.ini) do (
- set "str=%%i"
- echo !str!
- set /p Choice1=请输入:
- set "str=!str:123=%Choice1%!"
- echo !str!
- set /p Choice2=请输入:
- set "str=!str:456=%Choice2%!"
- echo !str!
-
- )
- pause
复制代码
从文件里把这字符串读出来就不行。
作者: Batcher 时间: 2021-2-15 20:46
回复 1# pd1
请参考Q-01观察一下哪行代码在报错:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
请参考Q-04和Q-05把bat文件和ini文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: pd1 时间: 2021-2-15 20:57
回复 2# Batcher - D:\1\test>setlocal enabledelayedexpansion
-
- D:\1\test>for /F "delims=" %i in (D:\1\test\1.ini) do (
- set "str=%i"
- echo !str!
- set /p Choice1=请输入:
- set "str=!str:123=!"
- echo !str!
- set /p Choice2=请输入:
- set "str=!str:456=!"
- echo !str!
- )
-
- D:\1\test>(
- set "str=xxx123456yyy"
- echo !str!
- set /p Choice1=请输入:
- set "str=!str:123=!"
- echo !str!
- set /p Choice2=请输入:
- set "str=!str:456=!"
- echo !str!
- )
- xxx123456yyy
- 请输入:aaa
- xxx456yyy
- 请输入:bbb
- xxxyyy
-
- D:\1\test>pause
- Press any key to continue . . .
复制代码
作者: flashercs 时间: 2021-2-15 21:40
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (1.ini) do (
- set "str=%%i"
- echo !str!
- set /p Choice1=请输入:
- call set "str=!str:123=%%Choice1%%!"
- echo !str!
- set /p Choice2=请输入:
- call set "str=!str:456=%%Choice2%%!"
- echo !str!
-
- )
- pause
复制代码
作者: went 时间: 2021-2-15 21:43
set "str=!str:456=%Choice2%!" 改成这样
call set "str=%%str:123=!Choice1!%%"
不然for里面取不到chouce1的值
作者: flashercs 时间: 2021-2-15 21:48
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (1.ini) do (
- set "str=%%i"
- echo !str!
- set /p Choice1=请输入:
- for %%A in (!Choice1!) do (
- set "str=!str:123=%%A!"
- )
- echo !str!
- set /p Choice2=请输入:
- for %%A in (!Choice2!) do (
- set "str=!str:456=%%A!"
- )
- echo !str!
-
- )
- pause
复制代码
作者: pd1 时间: 2021-2-16 01:33
谢谢各位大佬的热心解答。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |