@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的顺序乱了,你可以对调它们的内容。我是按照你要求的功能写的,但不是“如何把一个文件的内容复制到另外一个文件”的批处理。希望可以帮到你:)
建立一个check.ini配置文件,每次运行本批处理从该配置文件内读取值到check变量,判断该变量的值
@echo off
if not exist check.ini (
echo 0>check.ini
)
set /p check=
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
非常佩服,才了解一个小时就用了这么多命令。
不需要多的文件只一个批处理,把它加到开机启动项就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