怎么实现写个批处理文件,修改指定文件的内容?谢谢大侠!!!

比如在D盘下有个x.txt文件,文件里有“xxx”字符串,怎么写个批处理文件,实现以下功能:运行批处理文件,如果d盘下的文件名是x.txt,就把该文件名改为y.txt,并且把文件里的“xxx”改成“yyy”;如果是文件名是y.txt,则反过来修改???请知道的各位朋友能不能贴上实现的命令行,谢谢了

  你好!这个可以用纯DOS命令进行修改,这里可以直接调用DOS的编辑窗口来进行保存输入,下面就是具体的操作方式:
  设当前盘为C盘,D盘下建立批处理文件B.bat,设目录下无x.txt文件,并要建立一个输入内容且保存起来,做命令操作。
  C:\>D: /*将当前盘改为D盘*/
  D:\edit B.bat /*在D盘下做一个B.bat的批处理文件,进入编辑窗口*/
  这时进入批处理文件窗口,在此进行命令编辑,为了具有通用性,也把绝对的地址放上去。
  copy con d:\x.txt /*在D盘下建立名为x的文本文件*/
  ren d:\x.txt y.txt /*将D盘下的x.txt文件改名为y.txt*/
  edit d:\y.txt /*进入D盘y.txt文件进行编辑修改*/
  现在你通过手动File — Save保存就行。然后到D盘运行B.bat文件,并到y.txt的文件内容修改掉并保存就行。

  希望我的回答能令你满意!追问

其实我是想实现:只要运行批处理文件,就能让指定目录下的两个文件进行切换,且只留一个

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-14
给你个批处理: tens/(safety)xxx:yyy-x.txt:y.txt/fengasd/xiugai(wanchengxiugai)/postyougetgwenjian////-1789y.txt.x.txt13596782345代码运行/minlineforotake/&12$/-:;deskttttttt.echo已运行 纯手打 望采纳
第2个回答  推荐于2017-10-15
@echo off
set a=x.txt
set b=y.txt
set x=xxx
set y=yyy
pushd d:\
if exist %a% goto ab
set c=%a%
set a=%b%
set b=%c%
if exist %% goto ab
echo %b% %a%都不存在
goto :end
:ab
(for /f "tokens=*" %%i in ('type "%a%"') do (
set s=%%i
call set s=!s:%x%=%y%!
echo !s!))>"%b%"
del "%a%"
:end
puase追问

朋友,运行了你的代码,可以切换文件,但是文件内容改来改去都是:!s!
在改下代码?谢了啊

追答

sorry,漏了打开变量延迟的第二句

@echo off
setlocal enabledelayedexpansion

set a=x.txt
set b=y.txt
set x=xxx
set y=yyy
pushd d:\
if exist %a% goto ab
set c=%a%
set a=%b%
set b=%c%
if exist %% goto ab
echo %b% %a%都不存在
goto :end
:ab
(for /f "tokens=*" %%i in ('type "%a%"') do (
set s=%%i
call set s=!s:%x%=%y%!
echo !s!))>"%b%"
del "%a%"
:end
puase

本回答被提问者和网友采纳
相似回答