Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 启动时批处理脚本未完成_Windows_Batch File_Startup - Fatal编程技术网

Windows 启动时批处理脚本未完成

Windows 启动时批处理脚本未完成,windows,batch-file,startup,Windows,Batch File,Startup,我有一个批处理脚本,可以从Windows启动时运行的SVN(使用本地组策略编辑器配置)中下拉最新版本的文件 以下是脚本的代码: @echo off if "%1"=="" ( set LIBPATH=C:\ALTIUM_WORK\00001_MCHP-CDB\parts\Library ) else ( set LIBPATH=%1 ) svn cleanup %LIBPATH% set DATETIME=%DATE:~4,2%/%DATE:~7,2%/%DATE:~10,

我有一个批处理脚本,可以从Windows启动时运行的SVN(使用本地组策略编辑器配置)中下拉最新版本的文件

以下是脚本的代码:

@echo off

if "%1"=="" (
    set LIBPATH=C:\ALTIUM_WORK\00001_MCHP-CDB\parts\Library
) else (
    set LIBPATH=%1
)

svn cleanup %LIBPATH%

set DATETIME=%DATE:~4,2%/%DATE:~7,2%/%DATE:~10,4% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%

echo %DATETIME%>mcl_update.log
svn up %LIBPATH%>>mcl_update.log

if ERRORLEVEL 1 goto ERRHANDLER
Exit

:ERRHANDLER
<Insert error message here>
这是我所期望的,但是当脚本在启动时运行时,最后一行被省略了。它使用以下内容填充mcl_update.log:

02/14/2017 16:16:07
Updating 'C:\ALTIUM_WORK\00001_MCHP-CDB\parts\Library':
第二行是来自
svn
的输出的一部分,因此命令似乎启动了,但从未结束。我不明白为什么会发生这种事。有人有什么想法吗

谢谢

-肖恩

一个新发现的信息:启动后,如果我试图删除生成的日志文件,Windows会抛出一个错误,指出“该操作无法完成,因为该文件已在cmd.exe中打开”


这可能是一个域问题吗?与我公司网络的连接尚未启动,因此,
svn
命令刚刚挂起?

我怀疑
路径
不是您在启动过程中所期望的。也许您应该明确指定
svn
的路径,因为您显然记录的唯一报告是一个普通的
echo
,而不是来自
svn

的任何响应,因此在遵循@Magoo的建议将
stderr
导出到文件后,问题就变得清楚了。事实证明,这与我的服务器的用户身份验证有关。由于脚本在启动时(即在我登录之前)运行,
svn
命令无法工作,因为无法进行用户身份验证


我将组策略更改为在登录时启动脚本,而不是启动,现在一切正常。

更新“C:\ALTIUM\u WORK\00001\u MCHP-CDB\parts\Library”:
svn
输出的第一部分。它似乎永远无法完成命令。作为一个健全性检查,我首先向
svn
的路径添加了一张
cd
,但是输出是一样的。除非我在调用
svn
时需要使用显式路径。如果您怀疑这是一个时间问题,可能会在第一个
svn
之前插入
timeout/t90>nul
。否则,我会在第二个(有问题的)
svn
之后添加一个
pause
,并删除重定向。我怀疑
svn
正在等待输入,并可能在
stderr
上报告,因此在重定向时,
stdout
上不会出现提示。有趣的是,第一个
svn
似乎完成了
2>&1
应使用当前重定向器将stderr和stdout重定向到文件(但这对
svn
可能正在等待的任何输入都没有帮助)
02/14/2017 16:16:07
Updating 'C:\ALTIUM_WORK\00001_MCHP-CDB\parts\Library':