首页 文章

批处理脚本错误:“此时goto意外”

提问于
浏览
0

在将文件拖到其上时,我在下面的脚本中收到错误 . goto CONTINUE 行上的错误是 "goto unexpected at this time" .

我读到在某些情况下可以通过使用_485673来防止此错误,但这不适用于此处 .

我还读到,如果未设置errorlevel,则会发生此错误 . 我发现2> nul pushd是在%〜1是文件时设置错误级别,所以在使用命令cmd / c退出0的goto FILE之前重置错误级别 . 这确实重置了错误级别,但错误仍然存在 .

我希望有人能够指出我的方式的错误 . 谢谢!

@echo off
set rootDir=%~dp0
cd "%rootDir%"

del BatchTask.log

echo |TIME|FIND /i "current">>BatchTask.log
echo |DATE|FIND /i "current">>BatchTask.log

:CONTINUE
if %1 == "" goto END
set inDir="%~1"

if exist "%~1" (2>nul pushd "%~1" && (popd&goto FOLDER) || (cmd /c exit 0)&goto FILE)

:FILE
set outDir=%~dp1
IF %outDir:~-1%==\ (SET outDir=%outDir:~0,-1%)
goto CONVERT

:FOLDER
set outDir=%~1
goto CONVERT

:CONVERT
set outDir="%outDir%_Out"
shift
"%rootDir%\out\ReleaseWithSymbols\Converter.exe" %inDir% %outDir% 

goto CONTINUE

:END
cd "%rootDir%"

echo |TIME|FIND /i "current">>BatchTask.log
echo |DATE|FIND /i "current">>BatchTask.log

1 回答

  • 1

    我认为这是因为“转移”电话 . 我尝试给这个文件提供两个参数,并且只为第二个文件出错 .

    您可以尝试将goto语句放在if条件中 . 喜欢:

    if NOT "%1" == "" goto CONTINUE
    

相关问题