标题: [文本处理] 两个bat文件合并为一个批处理,怎么合? [打印本页]
作者: 7016427 时间: 2015-9-5 08:17 标题: 两个bat文件合并为一个批处理,怎么合?
- @echo off
- echo.
- set "w=e:\移除.bat"
- set "spath=e:\外勤"
- set "bakpath=d:\备份\外勤"
- set /a "y=%date:~,4%,m=1%date:~5,2%-2"
- if %m% lss 101 set /a y-=1,m+=12
- if exist "%spath%\%y%\%m:~-2%\" (
- call %w%
- ) else echo %y%年%m:~-2%已移除,退出!
- echo.
- pause
复制代码
- @echo off&setlocal EnableDelayedExpansion
- chcp 437>nul&graftabl 936>nul
- echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
- echo.
-
- set /p pw=请输入密码: <nul
- for /f "tokens=*" %%i in ('in.com') do set pw=%%i
- del in.com
- if not "%pw%"=="jyzr" (
- echo.
- echo.
- echo 密码错误^^!
- pause>nul&exit
- )
- echo.
- echo.
- set "spath=e:\外勤"
- set "bakpath=d:\备份\外勤"
- set /a "y=%date:~,4%,m=1%date:~5,2%-2"
- if %m% lss 101 set /a y-=1,m+=12
- if exist "%spath%\%y%\%m:~-2%\" (
- rd /q /s %bakpath%&md %bakpath%
- echo.
- xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%\"
- echo.
- rd /q /s "%spath%\%y%\%m:~-2%\"
- )
- )
- echo.
- echo %y%年%m:~-2%月份,备份完毕!
- pause & exit /b
复制代码
作者: 路过 时间: 2015-9-5 12:08
单纯合并用COPY /B /Y 文件1+文件2 文件3
作者: 7016427 时间: 2015-9-5 12:31
回复 2# 路过
请问老师,怎么修改?
作者: DAIC 时间: 2015-9-5 12:38
把第二个代码的最后一行删掉
把第一个代码放到第二个代码最后
作者: 7016427 时间: 2015-9-5 12:54 标题: 【未解决】 两个bat文件合并为一个批处理,怎么合?
【未解决】回复 4# DAIC
老师好!我是先执行第一个代码来,判断文件目录是否存在?文件目录存在时,执行第二个代码,否则退出。按老师指点的测试,文件目录不存在时,仍然要执行执行第二个代码。
作者: DAIC 时间: 2015-9-5 12:56
回复 5# 7016427
为啥顶楼不说清楚呢?
作者: DAIC 时间: 2015-9-5 12:59
以下所有代码保存为test.bat
@echo off
echo.
REM set "w=e:\移除.bat"
set "spath=e:\外勤"
set "bakpath=d:\备份\外勤"
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
if exist "%spath%\%y%\%m:~-2%\" (
call :YiChu
) else echo %y%年%m:~-2%已移除,退出!
echo.
pause
:YiChu
@echo off&setlocal EnableDelayedExpansion
chcp 437>nul&graftabl 936>nul
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
echo.
set /p pw=请输入密码: <nul
for /f "tokens=*" %%i in ('in.com') do set pw=%%i
del in.com
if not "%pw%"=="jyzr" (
echo.
echo.
echo 密码错误^^!
pause>nul&exit
)
echo.
echo.
set "spath=e:\外勤"
set "bakpath=d:\备份\外勤"
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
if exist "%spath%\%y%\%m:~-2%\" (
rd /q /s %bakpath%&md %bakpath%
echo.
xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%\"
echo.
rd /q /s "%spath%\%y%\%m:~-2%\"
)
)
echo.
echo %y%年%m:~-2%月份,备份完毕!
pause & exit /b
作者: 7016427 时间: 2015-9-5 13:35 标题: [未完全解决] 两个bat文件合并为一个批处理,怎么合?
[未完全解决]回复 7# DAIC
就是结束时,要按任一键几次,才关闭!能否帮我优化代码?
作者: 回家路上 时间: 2015-9-5 13:51
回复 8# 7016427
真服了,一个四级士官,发帖近两百,还都是这一年发的,结果丝毫批处理基础都没得。(⊙﹏⊙)b
作者: DAIC 时间: 2015-9-5 13:51
回复 8# 7016427
把 pause 删掉
作者: 7016427 时间: 2015-9-5 20:47 标题: 【已经解决!】 两个bat文件合并为一个批处理,怎么合?
回复 10# DAIC
【已经解决!】回复 10# DAIC
@echo off
echo.
set "spath=e:\外勤"
set "bakpath=d:\备份\外勤"
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
if not exist "%spath%\%y%\%m:~-2%\" (echo %y%年%m:~-2%月,已备份!
echo.
pause>nul&exit
)
@echo off&setlocal EnableDelayedExpansion
chcp 437>nul&graftabl 936>nul
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
echo.
set /p pw=请输入密码: <nul
for /f "tokens=*" %%i in ('in.com') do set pw=%%i
del in.com
if not "%pw%"=="jyzr" (
echo 密码错误 ^^!
pause>nul&exit
)
echo.
) else (
rd /q /s %bakpath%&md %bakpath%
xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%\"
echo.
rd /q /s "%spath%\%y%\%m:~-2%\"
)
echo.
echo %y%年%m:~-2%月%,执行完毕^^!
echo.
pause&exit /b
作者: DAIC 时间: 2015-9-6 09:46
回复 11# 7016427
是谁给你出的主意让你每次回帖都写一遍未解决、已解决?
问题解决之后,编辑顶楼的帖子注明[已解决]就行了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |