如果没有来自用户的输入,则批处理脚本移动到脚本的另一部分

时间:2017-01-11 07:01:09

标签: batch-file

如果没有来自用户的输入,我试图让这个脚本跳转到脚本的另一部分。

在if%input%==区域向下。

我要做的是跳到脚本检查.mp4文件的部分,如果它们在那里就移动它们。我应该为该部分设置变量或循环吗?感谢您的回复

@echo off
echo Checking for youtube-dl updates.

pause
youtube-dl -U
rem Enter the url or urls that you want to download from

set /p input="Enter the url(s) you want to download:"

rem Uses the youtube-dl continue (-c) option to download multiple files if not in a playlist

youtube-dl -c "%input%" 



rem pause

if %input%=="" GOTO:EOF

cls

echo Download complete, please wait while files are transfered to appropiate folder

pause

for %%o in (.mp4) do move "*%%o" "E:\Documents\scripts\videos\"
if not exist do echo .mp4 files are no longer in this directory
pause

2 个答案:

答案 0 :(得分:0)

当批量进行字符串比较时,你必须确保两个部分相等,在你的情况下永远不会发生!在大多数语言中,字符串都有双引号。他们通常不会批量生产 要解决您的问题,请将%input%括在双引号中 请注意,执行"x%input%"=="x"之类的操作可能非常有用,可以防止某些字符(如<>|)位于比较字符串的开头。

您可以使用以下几行自行检查:

@echo off
set /p input="Input something or nothing here "
echo %input%
echo "%input%"
pause

如果您在没有任何输入的情况下点击Return,您将看到只有底部输出将"",这是您要比较的字符串。

答案 1 :(得分:0)

以下脚本怎么样? &#34; file.mp4&#34;该脚本等待3秒钟。不存在。它一直等到文件存在。关于&#34; filename&#34;,您可以更改脚本。

@echo off
set waittime=3
set filename=file.mp4
:loop
if not exist %filename% (
  Timeout /t %waittime% /nobreak > nul
  goto loop
)
echo Find %filename%