无忧启动论坛
标题:
已经解决 如何用批处理替换cmd中的指定字符
[打印本页]
作者:
nnd76543
时间:
2012-10-19 09:16
标题:
已经解决 如何用批处理替换cmd中的指定字符
我有需求,用一个批处理同时完成对一个txt及cmd中的指定字符进行替换,如A.txt和B.cmd中的A:替换成B:
对TXT文档的替换已经收工了,可是对替换cmd中的指定字符却一筹莫展,请各位大侠帮忙!!谢谢
[
本帖最后由 nnd76543 于 2012-10-19 16:42 编辑
]
作者:
pznpt
时间:
2012-10-19 11:48
纯批几乎不可能办到,试试下面的:
--------------------------分割线----------------------------
@echo off
more +4 "%~0">$.vbs
wscript /NoLogo $.vbs
del $.vbs&goto :eof
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile("b.cmd",1)
Str = Replace(File.ReadAll,"A:","B:")
FSO.CreateTextFile("bb.cmd",True).Write Str
--------------------------分割线----------------------------
保存为test.bat,与b.cmd放在同一位置,生成的bb.cmd为替换后的文本。
作者:
nnd76543
时间:
2012-10-19 12:34
已经试验过了,非常好用!!谢谢DX了。
如果再提高要求,是否可以用人机交流的方式,将B.cmd中的A:替换成------》A:B:C:D:........Z:自由选择呢??嘻嘻。。。
作者:
pznpt
时间:
2012-10-19 14:27
标题:
回复 #3 nnd76543 的帖子
加一个输入对话框就可以了
---------------------------------分割线--------------------------------------
@echo off
more +4 "%~0">"%Temp%\$.vbs"
wscript /NoLogo "%Temp%\$.vbs"
del "%Temp%\$.vbs"&goto :eof
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile("b.cmd",1)
Input = InputBox("输入替换后的字符"&vbCr&vbCr&"(取消=空)","输入","B:")
Str = Replace(File.ReadAll,"A:",Input)
FSO.CreateTextFile("bb.cmd",True).Write Str
---------------------------------分割线--------------------------------------
-----------------------------------------------------
抱歉,想复杂了,貌似纯批可以搞定:
@echo off
set /p In=输入替换后的字符:
(for /f "delims=" %%a in (b.cmd) do (
set "str=%%a"
setlocal enabledelayedexpansion
echo,!str:A:=%In%!
endlocal
))>bb.cmd
[
本帖最后由 pznpt 于 2012-10-19 15:01 编辑
]
作者:
nnd76543
时间:
2012-10-19 15:03
太好了!!!
如何将A.txt和B.cmd中的A:都都如此办理呢?(同时替换成一样的------》A:B:C:D:........Z:自由选择)
莫怪我哦,菜鸟再一步步的跟DX学呢,这次的请求是终结了!!嘻嘻.......
作者:
pznpt
时间:
2012-10-19 15:48
好吧,两种方法任选其一
@echo off
more +4 "%~0">"%Temp%\$.vbs"
wscript /NoLogo "%Temp%\$.vbs"
del "%Temp%\$.vbs"&goto :eof
Set FSO = CreateObject("Scripting.FileSystemObject")
Input = InputBox("输入替换后的字符"&vbCr&vbCr&"(取消=空)","输入","B:")
Set File = FSO.OpenTextFile("a.txt",1)
Str = Replace(File.ReadAll,"A:",Input)
FSO.CreateTextFile("a1.txt",True).Write Str
Set File = FSO.OpenTextFile("b.cmd",1)
Str = Replace(File.ReadAll,"A:",Input)
FSO.CreateTextFile("b1.cmd",True).Write Str
复制代码
@echo off
set /p In=请输入替换后的字符:
for %%a in (a.txt b.cmd) do (
(for /f "delims=" %%b in (%%a) do (
set "str=%%b"
setlocal enabledelayedexpansion
echo,!str:A:=%In%!
endlocal
))>%%~na1%%~xa
)
复制代码
作者:
nnd76543
时间:
2012-10-19 16:22
DX好,2个版本都试了,非常完满,谢谢,再次谢谢!!
[
本帖最后由 nnd76543 于 2012-10-19 16:41 编辑
]
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3