首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批处理:错误级别在某些情况下不起作用

批处理:错误级别在某些情况下不起作用
EN

Stack Overflow用户
提问于 2015-02-04 02:22:06
回答 3查看 928关注 0票数 2

首先让我解释一下我要实现的目标:我有一台GoPro相机,当记录多个延时时,你会得到一大堆img文件,两个延时被文件名中的一个数字除以。Gxxxyyyy是如何标记文件的,y代表图片属于哪个延时,x代表延时中的哪个图片。

我正在尝试创建一个程序,将每个时间推移放在不同的文件夹中(按x位置上的数字排序);我使用batch是因为我已经有了一些使用它的经验。

这是我写的程序:

代码语言:javascript
复制
@echo off
set loop=0
set fn=1
set session=1

:sort
if %loop% LSS 1000 (

if %fn% GTR 99 (

    ROBOCOPY D:\Bureaublad\Output\Pictures D:\Bureaublad\Output\Pictures\Session%session% G%fn%*.JPG
    if %ERRORLEVEL% EQU 1 set /A session=%session%+1
)
if %fn% LSS 10 (

    ROBOCOPY D:\Bureaublad\Output\Pictures D:\Bureaublad\Output\Pictures\Session%session% G00%fn%*.JPG
    if %ERRORLEVEL% EQU 1 set /A session=%session%+1        
) ELSE (

    if %fn% LSS 100 (
ROBOCOPY D:\Bureaublad\Output\Pictures D:\Bureaublad\Output\Pictures\Session%session% G0%fn%*.JPG
    if %ERRORLEVEL% EQU 1 set /A session=%session%+1
    )
)

set /A fn=%fn%+1
set /A loop=%loop%+1
goto sort
)

我尝试使用errorlevel值来确定复制是否成功,因为如果是下一次复制,则必须复制到另一个文件夹,这就是我使用会话变量的目的。但它总是将所有内容复制到"session1“文件夹中,而不是单独的文件夹中,即使我在x位置有不同编号的文件。

我试着找出问题出在哪里,然后使用"echo %ERRORLEVEL%“,然后暂停,就在robocopy命令之后,每次即使文件被复制,它也只会说0。

这就是问题所在,我不明白为什么errorvalue不会改变。

EN

回答 3

Stack Overflow用户

发布于 2015-02-04 03:12:23

问题是你试图在一个块中扩展errorlevel。

百分比扩展由解析器在解析块时,在块执行之前完成。

您应该将扩展更改为延迟扩展。

代码语言:javascript
复制
@echo off
setlocal EnableDelayedExpansion
set loop=0
set fn=1
set session=1

:sort
if %loop% LSS 1000 (

    if !fn! GTR 99 (
        ROBOCOPY D:\Bureaublad\Output\Pictures D:\Bureaublad\Output\Pictures\Session!session! G!fn!*.JPG
        if !ERRORLEVEL! EQU 1 set /A session=session+1
    )
....
)
票数 2
EN

Stack Overflow用户

发布于 2015-02-04 03:02:11

ERRORLEVEL是一个内置变量,而不是一个环境变量,因此您不应该在它周围使用百分号(%),而是直接测试该值。使用它的正确方法是简单地

代码语言:javascript
复制
IF ERRORLEVEL 1 DoSomething
票数 1
EN

Stack Overflow用户

发布于 2018-04-12 02:54:31

请参阅robocopy exit codes

看看这个:

错误

即使失败,Version XP026也会返回成功错误级别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28306027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档