1
我有一个问题,就是我可以自动关闭从另一批处理文件启动的批处理文件。批处理 - 如何关闭从另一个批处理文件启动的批处理文件
我的第一个批处理文件看起来是这样的:
@echo off
:logs
start C:\Users\Kenturrac\Desktop\copy.bat
timeout 2
goto logs
所以你可以看到那里,我开始叫“copy.bat”另一个批处理文件,它看起来像这样:
::set arma path
@set ARMAPATH=C:\Users\Administrator.WIN-B8I65OIU3DJ\Desktop\server\dayz_epoch_1
::set log path
@set LOGPATH=%ARMAPATH%\_LOGS
@set MOVEORCOPY=copy
:: Berechne Zeitstempel
@set DAY=%DATE:~0,2%
@set MONTH=%DATE:~3,2%
@set YEAR=%DATE:~6,4%
@set DATE=%YEAR%_%MONTH%_%DAY%
@set HH=%TIME:~0,2%
@IF "%TIME:~0,1%"==" " (
set HH=0%TIME:~1,1%
)
@set MIN=%TIME:~3,2%
@set SEC=%TIME:~6,2%
@set TIME=%HH%%MIN%
@IF NOT EXIST "%LOGPATH%\%DATE%_%TIME%\" (
@set TEMPPATH=%DATE%_-_%TIME%
) ELSE (
@set TEMPPATH=%DATE%_-_%TIME%_%SEC%
)
@set TARGETPATH=%LOGPATH%\%TEMPPATH%\
@echo %TARGETPATH%
Exit /b
的问题在于它没有关闭为“copy.bat”启动的额外cmd窗口。 如果我使用“call”而不是“start”,它会弄乱“temppath”变量。
设置第二个批处理文件中的变量后,它继续复制文件。这里看起来并不重要,所以我跳过了这部分。但是,是的,setlocal/endlocal可以和call命令一起工作。 thx!你可以向我解释,为什么他没有关闭窗口,如果我使用start命令,因为我在第二个批处理文件的末尾使用了一个退出。 – user3621783
尝试在开始处使用'@echo off'。 – foxidrive