标题: [文本处理] 求助 CMD 的文件內容修改代碼 [打印本页]
作者: jamiemkin 时间: 2012-10-1 08:58 标题: 求助 CMD 的文件內容修改代碼
有个文件 A .txt 內容有 如下二个部份 IP= XXX.XxX.XXX.XX 想以賦值 %AA% 去取代 XXX.XXX.XXX.XX 的部份 第二部份是內容 "文件ID=0000|0000|0000|0000|0000|0000|0000|0000"想以賦值 %BB% 取代 0000|0000|0000|0000|0000|0000|0000|0000 或去除 只保留 文件ID= 這樣的文件操作 CMD的代碼該如何寫? 我有嘗試找大大們的文章 可是對於符号的變義不懂 ~ 求大大幫助
作者: apang 时间: 2012-10-1 09:07
- @echo off
- for /f "tokens=1* delims==" %%a in (a.txt) do (
- if /i "%%a"=="IP" set "AA=%%b"
- if /i "%%a"=="文件ID" set "BB=%%b"
- )
复制代码
作者: jamiemkin 时间: 2012-10-1 09:23
apang 发表于 2012-10-1 09:07
感謝大大的速度回覆 ~ 可是這沒有寫回文件裡的命令~ 我就是在寫回文件裡這裡卡住了~可否請大大再完善一下
作者: apang 时间: 2012-10-1 09:54
呃,如果a.txt只有这两行内容:
IP=XXX.XXX.XXX.XX
文件ID=0000|0000|0000|0000|0000|0000|0000|0000- @echo off
- set "AA=Bat"
- set "BB=Home"
- (for /f "tokens=1* delims==" %%a in (a.txt) do (
- if /i "%%a"=="IP" echo,%%a=%AA%
- if /i "%%a"=="文件ID" echo,%%a=%BB%
- ))>b.txt
复制代码
作者: jamiemkin 时间: 2012-10-1 09:56
呃,如果a.txt只有这两行内容:
IP=XXX.XXX.XXX.XX
文件ID=0000|0000|0000|0000|0000|0000|0000|0000
apang 发表于 2012-10-1 09:54
大大~~ 我錯了~ 沒有書寫清楚 文件內不只這二行~
作者: apang 时间: 2012-10-1 10:04
回复 5# jamiemkin
看在今天过节的份上,原谅你了,下不为例!- @echo off
- set "AA=Bat"
- set "BB=Home"
- (for /f "tokens=1* delims==" %%a in (a.txt) do (
- if /i not "%%a"=="IP" (
- if /i not "%%a"=="文件ID" (echo,%%a=%%b
- ) else echo,%%a=%BB%
- ) else echo,%%a=%AA%
- ))>b.txt
复制代码
作者: jamiemkin 时间: 2012-10-1 10:23
回复 jamiemkin
看在今天过节的份上,原谅你了,下不为例!
apang 发表于 2012-10-1 10:04
大大 看在今天过节的份上 再幫我一下~ 我試運行了這代碼出現了三个問題~ 1. 在其它行的" ] " 的符号後面出了 "="的符号 2. 原有的空白行不見了~ 3. "ID"= 的部份沒被%BB% 替換~ ID的後續部份和%BB% 是有 "|" 的符号存在的~ 不知道是不是這樣原因 ID=0000|0000|0000|0000|0000|0000|0000|0000
作者: apang 时间: 2012-10-1 10:29
回复 7# jamiemkin
把a.txt完整内容贴出来,或作为附件传上来
作者: jamiemkin 时间: 2012-10-1 13:28
回复 jamiemkin
把a.txt完整内容贴出来,或作为附件传上来
apang 发表于 2012-10-1 10:29
a.txt 內容
[DVD]
Path=C:\工作用\CCC.exe
DllName=DXDr.dll
UserName=XXXXX
PassWord=XXXXXXX
SkinIndex=1
[Server]
IP=xxxxxxxxxxxx
ServerPort=8888
文件ID=727495|08D00B172936F3575111DC17
[系统设置]
行为列表=8
排程行为=校正文件
已處理文件数量=38
自动檢查=1
作者: apang 时间: 2012-10-1 13:29
本帖最后由 apang 于 2012-10-1 13:39 编辑
- @echo off
- set "AA=Bat"
- set "BB=123^|456^|789"
- (for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
- set "str=%%b"
- setlocal enabledelayedexpansion
- if /i not "!str:~,3!"=="IP=" (
- if /i not "!str:~,5!"=="文件ID=" (echo,!str!
- ) else echo,文件ID=%BB%
- ) else echo,IP=%AA%
- endlocal
- ))>b.txt
复制代码
作者: jamiemkin 时间: 2012-10-1 14:21
回复 10# apang
可以用了~~ 謝謝~ 能再幫解另一个文件的批處理操作嗎?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |