![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 20:10 |
共 48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教如何批量修改TXT里的字符 |
| 可打印版本 1,376 / 10 |
| 第1楼 YoDe | 发表于 2007-12-09 00:50 |
| 中级用户 发帖 102 积分 224 | |
|
请教如何批量修改TXT里的字符 我想做一个批处理
其中1.txt如下 %ProgramFiles%\bhbsdrx.inf %ProgramFiles%\bjifays.inf %ProgramFiles%\jguiwef.inf %ProgramFiles%\meex.exe %ProgramFiles%\vmhrlbm.inf %ProgramFiles%\Yahoo! %ProgramFiles%\ah.bat %ProgramFiles%\ah.exe %ProgramFiles%\internet.exe %ProgramFiles%\SysInfo.wmp %ProgramFiles%\SysInfo.tmp bat文件如下 @echo off for /f "delims==" %%a in (c:\我的音乐\1.txt) do (set %%a="%%a") for /f "delims==" %%a in (c:\我的音乐\1.txt) do md %%a >NUL&&for /f "delims==" %%a in (c:\我的音乐\1.txt) do attrib %%a +r +s +a +h >NUL&&for /f "delims==" %%a in (c:\我的音乐\1.txt) do cacls %%a /c /e /d everyone >NUL 我想用批处理给1.txt的文件每行加个两个冒号 该如何做 比如 ”%ProgramFiles%\SysInfo.tmp“ 还有 for /f "delims==" %%a in (c:\我的音乐\1.txt) do (set %%a="%%a") 其中(set %%a="%%a") 是否要加转义符^该如何加? (set %%a=^"%%a") |
|
| 第2楼 lxmxn | 发表于 2007-12-09 04:05 |
| 版主 发帖 4,938 积分 11,386 | |
我想用批处理给1.txt的文件每行加个两个冒号 该如何做 汗一个…… 加引号直接 echo “%%a”。 另外,你的几个for可以用一个for来代替。 |
|
| 第3楼 YoDe | 发表于 2007-12-09 13:27 |
| 中级用户 发帖 102 积分 224 | |
|
请教了 代码呢 我想知道<<这符号的作用 比如<<nul是什么意思 如^具体用在哪 请给我个地址 我搜索不到……基本的的DOS符号大全我都看了 至于像<<这些特殊的我还不清楚 对了你说所的一个FOR是否在后面加一个&&成功后连接符?
|
|
| 第4楼 HAT | 发表于 2007-12-09 13:34 |
| 版主 发帖 5,017 积分 9,023 | |
| 第5楼 YoDe | 发表于 2007-12-09 13:34 |
| 中级用户 发帖 102 积分 224 | |
|
谢谢4楼朋友 那符号的命令还不太清楚怎么用你能帮我解释一下下面代码吗:
E: cd e:\网络游戏 dir/b >1.txt for /f "skip=1 delims=" %%a in (e:\网络游戏\1.txt) do set/p=%%a,<nul>>"C:\Documents and Settings\Administrator\桌面\排除删除.txt" for /f "delims==" %%a in (c:\我的音乐\1.txt) do (@echo "%%a" <<4.txt) OK 我要的就是for那一句 set/p=%%a,<nul>>这里到底是什么意思 一下字出现了我都不明白的符号 可是文本后面还有空格 该如何办呢 字符串里也有 真晕 那么有没有办法做到呢 上面的命令得到如下: "%ProgramFiles%\bhbsdrx.inf" "%ProgramFiles%\bjifays.inf " "%ProgramFiles%\jguiwef.inf" "%ProgramFiles%\meex.exe " "%ProgramFiles%\vmhrlbm.inf" "%ProgramFiles%\Yahoo! " "%ProgramFiles%\ah.bat " "%ProgramFiles%\ah.exe " "%ProgramFiles%\internet.exe" "%ProgramFiles%\SysInfo.wmp" "%ProgramFiles%\SysInfo.tmp" [ Last edited by YoDe on 2007-12-9 at 01:46 PM ] |
|
| 第6楼 HAT | 发表于 2007-12-09 13:46 |
| 版主 发帖 5,017 积分 9,023 | |
|
是因为你的1.txt文件里面本身就有空格吧:)
|
|
| 第7楼 YoDe | 发表于 2007-12-09 13:46 |
| 中级用户 发帖 102 积分 224 | |
|
对 本身就有空格
[ Last edited by YoDe on 2007-12-9 at 01:48 PM ] |
|
| 第8楼 YoDe | 发表于 2007-12-09 13:47 |
| 中级用户 发帖 102 积分 224 | |
|
谢谢4楼朋友 那符号的命令还不太清楚怎么用你能帮我解释一下下面代码吗:
E: cd e:\网络游戏 dir/b >1.txt for /f "skip=1 delims=" %%a in (e:\网络游戏\1.txt) do set/p=%%a,<nul>>"C:\Documents and Settings\Administrator\桌面\排除删除.txt" for /f "delims==" %%a in (c:\我的音乐\1.txt) do (@echo "%%a" <<4.txt) OK 我要的就是for那一句 set/p=%%a,<nul>>这里到底是什么意思 一下字出现了我都不明白的符号 delims==跟delims=有多大区别 |
|
| 第9楼 HAT | 发表于 2007-12-09 18:36 |
| 版主 发帖 5,017 积分 9,023 | |
|
set命令使用/p开关时,会等待用户输入。
<nul表示从空设备产生一个输入来响应前面的命令。 >>表示把结果以追加的方式写入到文件"C:\Documents and Settings\Administrator\桌面\排除删除.txt"。 delims==表示使用等号作为列分隔符 delims=表示使用默认列分隔符(空格、制表符) |
|
| 第10楼 YoDe | 发表于 2007-12-09 19:11 |
| 中级用户 发帖 102 积分 224 | |
|
三联病毒免疫中有如下批处理:
FOR /F "tokens=1,2 delims==" %%i in ('dir virlist\*.dat /b') do ( Set listtxt=%%i) 我用不用等号等到的结果都一样? 其中virlist文件如下几个 diskvir.dat,regdef.dat,sysvir2K.dat tempvir.dat,等等 我得到的结果都是 <set listtxt=diskvir.dat> <set listtxt=regdef.dat> <set listtxt=sysvir2K.dat> <set listtxt=tempvir.dat> 我不加等号同样如此?为何 其中TOKENS=1 2似乎也没什么效果? [ Last edited by YoDe on 2007-12-9 at 07:13 PM ] |
|
| 第11楼 HAT | 发表于 2007-12-10 10:36 |
| 版主 发帖 5,017 积分 9,023 | |
|
to: YoDe
因为'dir virlist\*.dat /b'命令的结果只有一列,所以: 1. 用不用等号作为列分隔符都一样,但是如果文件名里面有空格时,你就能看到区别了。 2. 只有tokens 1可以取到值,tokens 2 3 ...都为空。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |