wget使用批处理文件

时间:2012-06-22 19:09:10

标签: batch-file wget

我正在尝试使用批处理文件中的wget下载文件,如果文件已经准备就绪并且没有更改,我不想下载该文件,因此我使用-N 我也从我的个人FTP服务器下载文件,所以我想隐藏用户名密码详细信息,所以我决定使用>nul 2>&1隐藏输出 所以我的批处理文件是:

@echo off
blah blah
.....
echo please wait...
wget -N ftp://XXXXXXXXXX@YYYYYYY.com/file.jpg >nul 2>&1 

现在有两个问题:

  1. 窗口标题仍会显示我的用户名&密码,我如何隐藏标题或更改标题?

  2. 用户不知道操作是否成功(下载已完成)或失败(没有Internet或没有文件存在)或者因为文件已经存在而没下载,我想知道我是否可以制作3 IF报表

    IF file was downloaded then echo file download
    
    IF file wasn't downloaded then echo error
    
    IF file wasn't downloaded because was the same then echo file didnt change
    

2 个答案:

答案 0 :(得分:2)

Wget内置了开关,如果文件已经存在,将阻止下载。它有切换来完成您想要的大部分操作,因此您根本不必将“if”语句放在批处理文件中。

wget有一个广泛的开关列表。真的,开发人员几乎想到了一切。阅读这些文档,如果我记得它们大约150-200页。

答案 1 :(得分:1)

我同意PA的意见,如果文件是敏感的,那么在控制台输出中隐藏密码在安全性方面不会做太多。但是,要回答OP的问题:

1。 title命令能够改变当前窗口的标题。

title My CMD Window

如果您遇到的问题是wget命令的弹出窗口即将出现并在那里显示用户名和密码,您可以使用以下内容。我道歉,我对wget不熟悉所以我不确定它的行为,希望这会有所帮助。

start "My WGET Window" wget -N ftp://XXXXXXXXXX@YYYYYYY.com/file.jpg >nul 2>&1

2。 之前和之后的几次检查将是有益的。首先,检查文件是否存在,如果wget已经存在,甚至不打扰wget(假设从帖子的措辞中你不想覆盖文件)。

if exist file.jpg echo File already exists!&pause&goto :EOF
:: run wget here
if exist file.jpg (echo File download successful.) else (echo File download UNSUCCESSFUL.)

我们不需要检查所有三个条件,因为文件存在之前存在(在这种情况下批处理退出),或者在这种情况下我们不测试成功下载。请注意,检查部分文件很困难。

所以,把它们放在一起:

@echo off
blah blah
.....
title My CMD Window
if exist file.jpg echo File already exists!&pause&goto :EOF
echo please wait...
start "My WGET Window" wget -N ftp://XXXXXXXXXX@YYYYYYY.com/file.jpg >nul 2>&1
if exist file.jpg (echo File download successful.) else (echo File download UNSUCCESSFUL.)