中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 07:12
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 帮忙删除一下我重新发
可打印版本  2,031 / 19
第1楼 yhshiro 发表于 2008-04-24 14:06
初级用户 发帖 59 积分 130
帮忙删除一下我重新发
帮忙删除一下我重新发

[ Last edited by yhshiro on 2008-4-24 at 06:09 PM ]
第2楼 pusofalse 发表于 2008-04-24 15:22
银牌会员 发帖 646 积分 1,604
把第二行的user.txt替换成你的TXT文件
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
echo.!str!
)
pause>nul

[ Last edited by pusofalse on 2008-4-24 at 03:25 PM ]
第3楼 terrytong 发表于 2008-04-24 15:36
中级用户 发帖 115 积分 240
pause>nul
是什么意思啊大哥。
第4楼 slore 发表于 2008-04-24 15:39
铂金会员 发帖 2,478 积分 5,212
你把>nul去掉……

那个会显示一行字,用>nul去掉显示
第5楼 pusofalse 发表于 2008-04-24 15:43
银牌会员 发帖 646 积分 1,604
Originally posted by terrytong at 2008-4-24 03:36 PM:
pause>nul
是什么意思啊大哥。

把命令结果输出到空设备,但却实实在在的执行过,只不过屏蔽了而已...
我是这样理解的...
2>nul 表示屏蔽错误信息
例如 net user 123 123是你系统中没有的用户
net user 123>nul 还是会显示命令结果,那是因为包含错误流的缘故,
net user 123 2>nul 连错误信息都给屏蔽了 不知这样说对不对~
貌似还有个 3>nul 不知什么意思,达人指教!
第6楼 yhshiro 发表于 2008-04-24 15:44
初级用户 发帖 59 积分 130
Originally posted by pusofalse at 2008-4-24 03:22 PM:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
...



改不了呀~在CMD里显示是改了,但是文件里面还是没变化!

还有能解释一下,这命令里面那个是指定行的,还有修改我指定字符的是哪句。。
第7楼 pusofalse 发表于 2008-04-24 15:55
银牌会员 发帖 646 积分 1,604
Originally posted by yhshiro at 2008-4-24 03:44 PM:

@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
echo.!str!
)
pause>nul


改不了呀~在CMD里显示是改了,但是文件里面还是没变化!

还有能解释一下,这命令里面那个是指定行的,还有修改我指定字符的是哪句。。


Originally posted by yhshiro at 2008-4-24 03:44 PM:

@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
echo.!str!
)>>1.txt
pause>nul

结果保存在1.txt中。。。

if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
读到第3行的时候开始替换,(包含空白行)
第8楼 yhshiro 发表于 2008-04-24 16:08
初级用户 发帖 59 积分 130
能不能搞成写入的啊~

怎么我把名字改成user.txt的 他只加在后面。。。
第9楼 pusofalse 发表于 2008-04-24 16:11
银牌会员 发帖 646 积分 1,604
不明白你说的什么意思。
第10楼 yhshiro 发表于 2008-04-24 16:15
初级用户 发帖 59 积分 130
为什么我用在数字后面还有字符的行里,连最后一个字也被替换成数字了

公告

用了以后
公11

为什么前面的不变!后面的字变了

[ Last edited by yhshiro on 2008-4-24 at 04:17 PM ]
第11楼 pusofalse 发表于 2008-04-24 16:19
银牌会员 发帖 646 积分 1,604
Originally posted by yhshiro at 2008-4-24 04:15 PM:
为什么我用在数字后面还有字符的行里,连最后一个字也被替换成数字了

公告

用了以后
公11



原文件中只有一个数字,并且确定数字在什么地方的吗?
第12楼 yhshiro 发表于 2008-04-24 16:20
初级用户 发帖 59 积分 130
[标题][颜色=9] 公告

就改上面这个9。。。
第13楼 pusofalse 发表于 2008-04-24 16:25
银牌会员 发帖 646 积分 1,604
麻烦一次问清楚,我也觉得要求一变再变有点麻烦。。。
把源文件中的全部内容贴上来,要不不会。。。写的代码又没有通用性
第14楼 terse 发表于 2008-04-24 16:40
银牌会员 发帖 946 积分 2,404
@echo off&setlocal enabledelayedexpansion
set /P str1=输入替换前字符:
SET /P STR2=输入替换后字符:
for /f "delims=" %%i in (test.txt) do (
set str=%%i
set str=!str:%str1%=%str2%!
echo !str!>>test1.txt
)
pause
因特殊字符问题 不要输入= 替换前字符可输入: 9] 公 告 替换后字符:可输入: 11] 公 告

[ Last edited by terse on 2008-4-24 at 04:44 PM ]
第15楼 yhshiro 发表于 2008-04-24 16:40
初级用户 发帖 59 积分 130

公 告
下面的随时要改的。。。
XXXX
XXXX
XXXXX


要改的就是
公 告
或者
广 告

前面的


都是不变的,只是改一下数字!~
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023