![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 02:20 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 帮忙改下 这个批处理 |
| 可打印版本 727 / 7 |
| 第1楼 amio | 发表于 2008-07-05 21:26 |
| 中级用户 发帖 93 积分 206 | |
|
帮忙改下 这个批处理 原:
type nul>"tmp.txt" for /f "delims=:" %%a in ('findstr /n ".*\[..*\]" c:\a\a.txt') do set .%%a=a for /f "tokens=1* delims=:" %%a in ('findstr /n .* c:\a\a.txt'') do ( if defined .%%a ( >>"tmp.txt" echo. ) for /f "tokens=*" %%i in ("%%b") do ( >>"tmp.txt" echo.%%i ) ) c:\a 目录下还有很多 .txt 文件 想把这个 c:\a\a.txt 变成 c:\a\*.txt 不能要 tmp.txt 这个文件了 而是直接修改源文件 不知道可以实现不? |
|
| 第2楼 HAT | 发表于 2008-07-05 22:34 |
| 版主 发帖 5,017 积分 9,023 | |
|
不管是Windows还是Unix,都没有哪个命令可以无误地直接修改源文件。
|
|
| 第3楼 ywwywwjm | 发表于 2008-07-06 01:21 |
| 初级用户 发帖 13 积分 42 | |
|
sed -i -e "s/$/\r/;s/\(.*\[..*\]\)/\r\n\1/" c:\a\a.txt
|
|
| 第4楼 amio | 发表于 2008-07-06 10:15 |
| 中级用户 发帖 93 积分 206 | |
Originally posted by ywwywwjm at 2008-7-6 01:21 AM: c:\a\a.txt 这个可以改成 c:\a\*.txt ??? |
|
| 第5楼 amio | 发表于 2008-07-06 10:19 |
| 中级用户 发帖 93 积分 206 | |
|
sed -i -e "s/$/\r/;s/\(.*\[..*\]\)/\r\n\1/" c:\a\a.txt 这个好像没什么作用
hat -i 参数可以修改源文件 |
|
| 第6楼 amio | 发表于 2008-07-06 10:20 |
| 中级用户 发帖 93 积分 206 | |
|
如果那个批处理 用sed 实现也可以
如果可以实现 在用个for 命令 应该就可以实现批量修改了 |
|
| 第7楼 HAT | 发表于 2008-07-06 10:34 |
| 版主 发帖 5,017 积分 9,023 | |
|
你能否确定sed -i是否使用了临时文件来实现呢?就像change.exe一样
你能否确定sed -i以后,原文件的格式没有改变呢? |
|
| 第8楼 amio | 发表于 2008-07-06 13:18 |
| 中级用户 发帖 93 积分 206 | |
Originally posted by HAT at 2008-7-6 10:34 AM: 先不说这个问题 能不能 实现 用sed 代替 上面那个批处理 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |