批处理:如何把一个文件的内容复制到另外一个文件

大家好,我想实现一个功能:第一次开机执行on.bat,第2次开机执行off.bat,第3次开机执行on.bat,第4次开机执行off.bat,第5次开机执行on.bat。... 大家好,我想实现一个功能:第一次开机执行on.bat,第2次开机执行off.bat,第3次开机执行on.bat,第4次开机执行off.bat,第5次开机执行on.bat。。。。
因为不知道如何在.bat中设置一个变量,使的每次开机都保持关机前设定的值,所以采用把变量存入文件中的办法。

问题:
我使用了3个文本文件:on.txt(on),off.txt(0ff),a.txt(on)。(括号内为文件内容)
目前不知道如何把on.txt 或者 off.txt 的文件 写入 c.txt.

我的程序见下:
通过判断switch是否为字符串on(),来调用不同的.bat。
set /p a=<%f:\a.txt%

if %a% == "on" (goto caseon)
else (goto caseoff)

:caseon
call 1.bat
echo "1 is run"
set /p str=<%f:\off.txt%
echo %str% > %f:\a.txt%
goto lala

:caseoff
call 2.bat
echo "2 is run"
set /p str=<%f:\on.txt%
echo %str% > %f:\a.txt%
goto lala

:lala
exit

如果有其他更方便的方法请分享下,对写.bat的了解一个小时,很多地方不懂。谢谢大家!
谢谢。
逻辑上感觉完全没有问题。
但是跑的过程中产生2个问题,不知道是调试环境的问题还是别的。如果可以帮忙解答,不甚感激。

1,不知道是不是数字1,0的关系,直接把在check.ini文件中输入了一下的内容:ECHO 处于关闭状态 。因为整个逻辑没办法跑下去。
2,把1,0换了之后,发现还是跑的不成功,感觉与exit有关,去掉exit,达到预期效果。

下面是我修改的,在winxp sp3 的cmd的命令窗口下调试通过。
@echo on
if not exist check.ini (
echo kai>check.ini
)
set /p check=<check.ini
echo %check%
if %check% == kai (
goto :on
)
if %check% == guan (
goto :off
)

:on
call 1.bat
echo "1 is run"
echo guan>check.ini
goto lala

:off
call 2.bat
echo "2 is run"
echo kai>check.ini
goto lala

:lala
echo lala
展开
 我来答
紫紫恭子
2010-07-24 · 超过29用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:77.4万
展开全部
@echo off
::这部分是将批处理自动加入到启动项。
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v TEST /t REG_SZ /d "%~f0" /f
::这段就是你要求实现的功能,请不用手动创建或者删除C:\on文件夹。
IF EXIST C:\on (GOTO OFF) ELSE GOTO ON
:OFF
rd /s /q C:\on
::这里写原off.bat的系列命令
GOTO END
:ON
md C:\on
::这里写原on.bat的系列命令
GOTO END
:END
exit

如果on.bat和off.bat的顺序乱了,你可以对调它们的内容。我是按照你要求的功能写的,但不是“如何把一个文件的内容复制到另外一个文件”的批处理。希望可以帮到你:)
百度网友4d455f6
2010-07-23 · TA获得超过3590个赞
知道大有可为答主
回答量:4677
采纳率:0%
帮助的人:4411万
展开全部
建立一个check.ini配置文件,每次运行本批处理从该配置文件内读取值到check变量,判断该变量的值

@echo off
if not exist check.ini (
echo 0>check.ini
)
set /p check=<check.ini
if %check% equ 0 (
goto :on
)
if %check% equ 1 (
goto :off
)
exit

:on
call 1.bat
echo "1 is run"
set /p str=<%f:\off.txt%
echo %str% > %f:\a.txt%
echo 1>check.ini
goto lala
exit

:off
call 2.bat
echo "2 is run"
set /p str=<%f:\on.txt%
echo %str% > %f:\a.txt%
echo 0>check.ini
goto lala
exit

:lala
exit
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyykkkyyyy
2010-07-24 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3282万
展开全部
非常佩服,才了解一个小时就用了这么多命令。
不需要多的文件只一个批处理,把它加到开机启动项就ok。反复测试下面代码,可行再据你情况改编:

::0
@echo off
set/p a=<%~f0
set a=%a:~-1%
set/a b=!%a%
echo ::%b%>yky
more +1 %~f0>>yky
copy yky %~f0>nul&&del yky
goto A%a%

:A0
echo 这里写原on.bat的系列命令
goto end

:A1
echo 这里写原off.bat的系列命令

:end
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式