|
YoDe
中级用户
积分 224
发帖 102
注册 2007-11-9
状态 离线
|
『楼 主』:
请教如何批量修改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")
|
|
2007-12-9 00:50 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
2 楼』:
Quote: | 我想用批处理给1.txt的文件每行加个两个冒号 该如何做
比如
”%ProgramFiles%\SysInfo.tmp“ |
|
汗一个……
加引号直接 echo “%%a”。
另外,你的几个for可以用一个for来代替。
|
|
2007-12-9 04:05 |
|
|
YoDe
中级用户
积分 224
发帖 102
注册 2007-11-9
状态 离线
|
『第
3 楼』:
请教了 代码呢 我想知道<<这符号的作用 比如<<nul是什么意思 如^具体用在哪 请给我个地址 我搜索不到……基本的的DOS符号大全我都看了 至于像<<这些特殊的我还不清楚 对了你说所的一个FOR是否在后面加一个&&成功后连接符?
|
|
2007-12-9 13:27 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2007-12-9 13:34 |
|
|
YoDe
中级用户
积分 224
发帖 102
注册 2007-11-9
状态 离线
|
『第
5 楼』:
谢谢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 ]
|
|
2007-12-9 13:34 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
6 楼』:
是因为你的1.txt文件里面本身就有空格吧:)
|
|
|
2007-12-9 13:46 |
|
|
YoDe
中级用户
积分 224
发帖 102
注册 2007-11-9
状态 离线
|
『第
7 楼』:
对 本身就有空格
[ Last edited by YoDe on 2007-12-9 at 01:48 PM ]
|
|
2007-12-9 13:46 |
|
|
YoDe
中级用户
积分 224
发帖 102
注册 2007-11-9
状态 离线
|
『第
8 楼』:
谢谢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=有多大区别
|
|
2007-12-9 13:47 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
9 楼』:
set命令使用/p开关时,会等待用户输入。
<nul表示从空设备产生一个输入来响应前面的命令。
>>表示把结果以追加的方式写入到文件"C:\Documents and Settings\Administrator\桌面\排除删除.txt"。
delims==表示使用等号作为列分隔符
delims=表示使用默认列分隔符(空格、制表符)
|
|
|
2007-12-9 18:36 |
|
|
YoDe
中级用户
积分 224
发帖 102
注册 2007-11-9
状态 离线
|
『第
10 楼』:
三联病毒免疫中有如下批处理:
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 ]
|
|
2007-12-9 19:11 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
11 楼』:
to: YoDe
因为'dir virlist\*.dat /b'命令的结果只有一列,所以:
1. 用不用等号作为列分隔符都一样,但是如果文件名里面有空格时,你就能看到区别了。
2. 只有tokens 1可以取到值,tokens 2 3 ...都为空。
|
|
|
2007-12-10 10:36 |
|