[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 为什么在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%
1

评分人数

回复 2# flyinnet9
谢谢,太坑啦!

TOP

回复 3# gawk
谢啦,果然是!好坑!

TOP

  1. @echo off
  2. Rem 基本变量设置
  3. set repodir=H:\Repositories\customerManage
  4. set bakdir=H:\SVN_BAKUP\customerManage
  5. set dt=%date:~0,4%%date:~5,2%%date:~8,2%.%time:~0,2%%time:~3,2%%time:~6,2%
  6. set last=1
  7. Rem 第一次执行的时候last_version.txt是不存在的。当它存在时,last等于last_version。
  8. if exist H:\SVN_BAKUP\customerManage\last_version.txt for /f %i in (last_version.txt) do (set last=%i)
  9. Rem 查看最新版本号,并令now等于最新版本号
  10. svnlook youngest %repodir% > last_version.txt
  11. for /f %%i in (last_version.txt) do (set now=%%i)
  12. Rem svn命令,备份last和now之间的版本到指定的目录
  13. svnadmin dump %repodir% -r %last%:%now% --incremental > %bakdir%\%last%_%now%_%dt%
复制代码
bat里面需要把%i改成%%i

如果还是有问题:
代码保存为test.bat
在CMD窗口中执行test.bat
把报错信息发出来看看
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

for /f %%i in (last_version.txt) do (set now=%%i)

TOP

返回列表