标题: [文件操作] 为什么在cmd下正常运行的代码以批处理文件方式执行则报错? [打印本页]
作者: 向不乐 时间: 2016-5-10 10:08 标题: 为什么在cmd下正常运行的代码以批处理文件方式执行则报错?
本帖最后由 pcl_test 于 2016-5-10 19:49 编辑
Svn备份脚本,如下:(迅速弹了了一下cmd窗口就什么都没了)
@echo off
Rem 基本变量设置
set repodir=H:\Repositories\customerManage
set bakdir=H:\SVN_BAKUP\customerManage
set dt=%date:~0,4%%date:~5,2%%date:~8,2%.%time:~0,2%%time:~3,2%%time:~6,2%
set last=1
Rem 第一次执行的时候last_version.txt是不存在的。当它存在时,last等于last_version。
if exist H:\SVN_BAKUP\customerManage\last_version.txt for /f %i in (last_version.txt) do (set last=%i)
Rem 查看最新版本号,并令now等于最新版本号
svnlook youngest %repodir% > last_version.txt
for /f %i in (last_version.txt) do (set now=%i)
Rem svn命令,备份last和now之间的版本到指定的目录
svnadmin dump %repodir% -r %last%:%now% --incremental > %bakdir%\%last%_%now%_%dt%
作者: flyinnet9 时间: 2016-5-10 11:31
for /f %%i in (last_version.txt) do (set now=%%i)
作者: gawk 时间: 2016-5-10 11:32
- @echo off
- Rem 基本变量设置
- set repodir=H:\Repositories\customerManage
- set bakdir=H:\SVN_BAKUP\customerManage
- set dt=%date:~0,4%%date:~5,2%%date:~8,2%.%time:~0,2%%time:~3,2%%time:~6,2%
- set last=1
-
- Rem 第一次执行的时候last_version.txt是不存在的。当它存在时,last等于last_version。
- if exist H:\SVN_BAKUP\customerManage\last_version.txt for /f %i in (last_version.txt) do (set last=%i)
-
- Rem 查看最新版本号,并令now等于最新版本号
- svnlook youngest %repodir% > last_version.txt
- for /f %%i in (last_version.txt) do (set now=%%i)
-
- Rem svn命令,备份last和now之间的版本到指定的目录
- svnadmin dump %repodir% -r %last%:%now% --incremental > %bakdir%\%last%_%now%_%dt%
复制代码
bat里面需要把%i改成%%i
如果还是有问题:
代码保存为test.bat
在CMD窗口中执行test.bat
把报错信息发出来看看
作者: 向不乐 时间: 2016-5-10 15:08
回复 3# gawk
谢啦,果然是!好坑!
作者: 向不乐 时间: 2016-5-10 15:08
回复 2# flyinnet9
谢谢,太坑啦!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |