用bat做字符替换

做一个bat写一个程序,效果要这样,把当前目录的1.txt里的program flies全部改成progra~1.把生成的写入2.txt
我自己写了好多,试过好多,但是都不行,麻烦大家帮帮忙。
1楼给的不能用啊,我的思路也是这样,但是不知怎么就是用不了。
不要2楼的那种答案,我就是要用bat来做,因为我就是在学这个,在这里遇到一点麻烦了。
3楼,内容如下:
...23109... C:\Program Files\Common Files\Thunder Network\APlayer\Codecs\cddareader.ax
...23110... C:\Program Files\Common Files\Thunder Network\APlayer\Codecs\cdxareader.ax
...23111... C:\Program Files\Common Files\Thunder Network\APlayer\Codecs\cl264dec.ax

第1个回答  2011-02-06
你可以在一个EXCEL中,替换一遍,在替换前,打开录制宏的功能。这样就可以将要做的事全部录下来,保存下来。再用这个带“宏”的EXCEL打开另外一些EXCEL文件,运行宏就成了。宏录制,在工具->宏-->录制宏

回答你补充的问题,因为没看到你的原始文件,不知它的结构是如何,如果没有区别于其它的唯一特征就很难用一条命令全部替换,可能替换过程中就会把其它也替掉了。

但如果这个值出现在固定的某一列,可以用公式将这一列全部转换到另一列,用公式=LEFT(B1,4)&"-"&LEFT(RIGHT(B1,4),2)&"-"&RIGHT(B1,2)。
结果就是2007-09-09。如果你只想看到这个格式,将某一列全部用公式套一下就可以了。但如果你要运算,那么还得有个增删的过程。

如果你采用这个法,比如A列为这个数,你就可以在A列前再加一列,用上述办法,得出K列(空白列),再将K列的值“特殊粘贴”数值到A列,再删掉B列,与刚才的K列(J列)就可以了(别忘了用自设模式设一下单元格,因为微软的格式可能是日、月、年,你要设成年-月-日)。
全过程用宏记录一下。
第2个回答  2011-02-08
内容贴一些出来看看
---------------------------------------------------------
囧 1L没用的原因是因为你把Program Files打成Program Flies...LZ你太粗心了 - -

setlocal enabledelayedexpansion
for /f " delims=" %%i in (1.txt) do (
set a=%%i
set b=!a:Program Files=Progra~1!
echo !b!>>2.txt
)
pause本回答被提问者采纳
第3个回答  2011-02-05
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
set a=%%i
set b=!a:program flies=progra~1!
echo !b!>>2.txt
)
pause
相似回答