我正在尝试使用批处理文件中的wget下载文件,如果文件已经准备就绪并且没有更改,我不想下载该文件,因此我使用-N
我也从我的个人FTP服务器下载文件,所以我想隐藏用户名和密码详细信息,所以我决定使用>nul 2>&1
隐藏输出
所以我的批处理文件是:
@echo off
blah blah
.....
echo please wait...
wget -N ftp://XXXXXXXXXX@YYYYYYY.com/file.jpg >nul 2>&1
现在有两个问题:
窗口标题仍会显示我的用户名&密码,我如何隐藏标题或更改标题?
用户不知道操作是否成功(下载已完成)或失败(没有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
答案 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.)