Board logo

标题: 如何实现将文本中的价格各加5快呀? [打印本页]

作者: feixiang9911     时间: 2007-4-27 15:45    标题: 如何实现将文本中的价格各加5快呀?

如何实现将文本中的价格各加5快呀?
文本内容为:

81775278----15.0元/全新自挂太阳号
81780078----18.0元/全新自挂太阳号
作者: ansipeter     时间: 2007-4-27 21:42
命令行下输入:
for /f "tokens=1,2* delims=-." %a in (1.txt) do @set/p=%a----<nul&set/a(%b+5)&echo/.%c

作者: feixiang9911     时间: 2007-4-28 23:31
不瞒你说  你的这个P处理没用,运行了什么都没有
作者: feixiang9911     时间: 2007-4-28 23:35
你这个怎么生成到文件里面去
作者: bjsh     时间: 2007-4-28 23:37
1.请确定你的文本为1.txt
否则请自行修改;
2.2楼的代码没有问题;请于命令行下执行;而不是批处理文件;

对于批处理应该这样
@echo off
for /f "tokens=1,2* delims=-." %%a in (1.txt) do set /p=%%a----<nul & set /a p=%%b+5 & call set /p"=%%p%%"<nul &echo/.%%c
刚才没仔细看直接把 二楼的 % 改成 %% 就发上来了..

定向到文本
@echo off
for /f "tokens=1,2* delims=-." %%a in (1.txt) do (set /p=%%a----<nul & set /a p=%%b+5 & call set /p"=%%p%%"<nul &echo/.%%c) >> result.txt
[ Last edited by bjsh on 2007-4-28 at 11:02 AM ]
附件 1: 1.jpg (2007-4-28 23:49, 13.97 K, 下载附件所需积分 1点 ,下载次数: 2)



作者: feixiang9911     时间: 2007-4-28 23:37
你这个SET前面加@是什么意思呀 @set/p=%a----<nul&set/a(%b+5)&echo/.%c
还有这个是什么意思呀
作者: bjsh     时间: 2007-4-28 23:40
你可以尝试;
命令行下分别执行
for /f "tokens=1,2* delims=-." %a in (1.txt) do @set/p=%a----<nul&set/a(%b+5)&echo/.%c


for /f "tokens=1,2* delims=-." %a in (1.txt) do set/p=%a----<nul&set/a(%b+5)&echo/.%c

你就知道@的作用了..

告诉你不如让你自己体会
作者: feixiang9911     时间: 2007-4-28 23:42
呵呵 斑竹这个也不性

运行结果是这样的

.0元/全新自挂太阳号)
.0元/全新自挂太阳号)
作者: feixiang9911     时间: 2007-4-28 23:57
斑竹
@echo off
for /f "tokens=1,2* delims=-." %%a in (1.txt) do (@set/p=%%a----<nul&set/a(%%b+5)&echo/.%%c) >> result.txt

这个P处理怎么不对呀

运行结果是这样的

.0元/全新自挂太阳号)
.0元/全新自挂太阳号)

你在帮我看看呀
作者: bjsh     时间: 2007-4-29 00:00
上面确实是不对的; 我没仔细看就把 2楼的代码 %改成 %% 就发上来了;

代码已经在 5 楼修改了;
作者: feixiang9911     时间: 2007-4-29 00:07
哦 谢谢版主了 问题已经解决 又学了不少好东西  呵呵
作者: ansipeter     时间: 2007-4-29 00:20
一个个的都是SB,真后悔帮你解决问题了,你会用吗?操!
─────────────────── 版务记录 ────────────────────
执行:bjsh

骂粗口;特此警告!!!

─────────────────── 版务记录 ────────────────────

[ Last edited by bjsh on 2007-4-28 at 11:35 AM ]
作者: huzixuan     时间: 2007-4-29 00:37
对于一个新成员,怎能这样骂脏话.
谁一开始不都是不懂吗,还不是一个带一个 慢慢上来的
作者: zhoushijay     时间: 2007-4-29 01:23
set/p=%%a----<nul&set/a(%%b+5)&echo/.%%c
能解释一下这句话的意思吗?
作者: zhoushijay     时间: 2007-4-29 01:38
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1,2* delims=-" %%a in (11.txt) do echo %%b>>22.txt
for /f "tokens=1 delims=." %%i in (22.txt) do (set /a a=%%i+5
echo !a!
)

我只能写这样的,效果还不好,楼上几位能解释下那句话的意思吗
作者: bjsh     时间: 2007-4-29 02:23


  Quote:
Originally posted by zhoushijay at 2007-4-28 12:23 PM:
set/p=%%a----<nul&set/a(%%b+5)&echo/.%%c
能解释一下这句话的意思吗?

这句话应该是这样的:
set/p=%a----<nul&set/a(%b+5)&echo/.%c

set /p=%%a----<nul
拿1.txt的第一句来说吧
这一句就是输出
81775278----并且不换行;
对于set /p <nul不换行以前讨论很多了请搜索;
set/a(%b+5) 把 %b即15加5后输出接在前面不换行的后面;(不适用于带有@echo off的批处理)
echo/.%c也可以写为 echo .%c
即输出.0元/全新自挂太阳号并换行;

对于批处理中 用:
set /p=%%a----<nul & set /a p=%%b+5 & call set /p"=%%p%%"<nul &echo/.%%c