3

バッチファイルでwgetを使用してファイルをダウンロードしようとしています。ファイルがすべて準備できていて、変更されていない場合はファイルをダウンロードしたくないので-N 、個人のFTPサーバーからファイルをダウンロードしています。ユーザー名パスワードの詳細を非表示にしたい>nul 2>&1 ので、を使用して出力を非表示にすることにしました。バッチファイルは次のとおりです。

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

今2つの問題があります:

  1. ウィンドウのタイトルには引き続きユーザー名とパスワードが表示されますが、タイトルを非表示にしたり、タイトルを変更したりするにはどうすればよいですか?

  2. ユーザーは、操作が成功した(ダウンロードが行われた)か失敗した(インターネットがないかファイルが存在しない)か、ファイルがすでに存在するためにダウンロードされなかったかを知りません。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
    
4

2 に答える 2

2

Wget には、ファイルが既に存在する場合にダウンロードを防止するスイッチが組み込まれています。必要なことのほとんどを実行するためのスイッチがあるため、バッチ ファイルに "if" ステートメントを入れる必要はまったくありません。

wget には、スイッチの広範なリストがあります。本当に、開発者はほぼすべてを考えてきました。これらのドキュメントを読んでください。覚えていれば、それらは約 150 ~ 200 ページの長さです。

于 2012-11-15T21:31:24.853 に答える
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 を気にしないでください (投稿の文言から、ファイルを上書きしたくないと仮定します)。

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.)

3 つの条件すべてをチェックする必要はありません。ファイルが事前に存在するか (この場合、バッチは終了します)、または存在しない場合はダウンロードの成功をテストするためです。部分的なファイルをチェックするのは難しいことに注意してください。

したがって、すべてをまとめると、次のようになります。

@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.)
于 2012-10-23T19:43:05.950 に答える