3 votes

Utilisation de wget à l'aide d'un fichier batch

J'essaie de télécharger un fichier en utilisant wget dans un fichier batch, je ne veux pas télécharger le fichier si le fichier existe déjà et qu'il n'a pas été modifié, donc j'utilise wget. -N De plus, je télécharge le fichier à partir de mon serveur FTP personnel et je veux donc cacher mon nom. nom d'utilisateur y mot de passe j'ai donc décidé de masquer la sortie en utilisant >nul 2>&1 mon fichier batch est donc :

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

Il y a maintenant deux problèmes :

  1. Le titre de la fenêtre affichera toujours mon nom d'utilisateur et mon mot de passe, comment puis-je cacher le titre ou le modifier ?

  2. l'utilisateur ne saura pas si l'opération a réussi (le téléchargement a été effectué) ou si elle a échoué (pas d'Internet ou aucun fichier n'existe) ou si le téléchargement n'a pas eu lieu parce que le fichier existait déjà, je me demande si je peux faire 3 ETATS 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

2voto

Ian Points 29

Wget dispose d'interrupteurs intégrés qui empêchent le téléchargement si le fichier existe déjà. Il dispose de commutateurs pour faire la plupart de ce que vous voulez, de sorte que vous n'aurez pas besoin de mettre les instructions "if" dans le fichier de traitement par lots.

wget dispose d'une liste étendue de commutateurs. Le développeur a vraiment pensé à tout. Lisez ces documents, si je me souviens bien, ils font environ 150-200 pages.

1voto

Derek Points 136

Je suis d'accord avec PA pour dire que si le fichier est sensible, cacher le mot de passe dans la sortie de la console n'apportera pas grand-chose en termes de sécurité. Cependant, pour répondre à la question de l'OP :

1. La commande title permet de modifier le titre de la fenêtre en cours.

title My CMD Window

Si le problème que vous rencontrez est qu'une fenêtre popup pour la commande wget apparaît et affiche le nom d'utilisateur et le mot de passe, vous pouvez utiliser ce qui suit. Je m'excuse, je ne suis pas familier avec wget et je ne suis donc pas sûr de son comportement, j'espère que cela vous aidera.

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

2. Il est utile de procéder à quelques vérifications avant et après l'opération. Tout d'abord, vérifiez si le fichier existe et ne vous embêtez pas avec le wget s'il existe déjà (en supposant, d'après la formulation de votre message, que vous ne voulez pas écraser le fichier).

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

Il n'est pas nécessaire de vérifier les trois conditions, car le fichier existe déjà (auquel cas le lot se termine) ou n'existe pas, auquel cas nous testons la réussite du téléchargement. Notez qu'il sera difficile de vérifier un fichier partiel.

Donc, si l'on met tout cela bout à bout, on se rend compte qu'il s'agit d'un problème de santé publique :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X