Je fais le répertoire suivant au début de mon fichier de commandes pour stocker du contenu temporaire:
"% userprofile% \ téléchargements \ versionCheckwilldelete" p> blockQuote>
Je souhaite supprimer ce dossier et tout son contenu. p>
Ce qui suit supprime uniquement les données du dossier mais pas le dossier lui-même: P>
@echo off :version_chk SET USER_VER=1.1.2-RC ECHO * * * * * * * * * * * * * ECHO CHECKING FOR UPDATES... ECHO * * * * * * * * * * * * * cd "%userprofile%\Downloads" mkdir "%userprofile%\Downloads\VersionCheckWillDelete" cd "%userprofile%\Downloads\VersionCheckWillDelete" powershell -Command "Invoke-WebRequest https://github.com/KSanders7070/AIRPORT_ALIAS_CREATION/blob/master/Version_Check -OutFile 'version_check.HTML'" findstr "VERSION-" "version_check.HTML" >> "GitHub_Version.txt" cd "%userprofile%\Downloads\VersionCheckWillDelete" for /f "delims=" %%x in (GitHub_Version.txt) do set GH_VER_STRING_ORIGINAL=%%x for /f "tokens=2 delims=<" %%x in ("%GH_VER_STRING_ORIGINAL%") do set GH_VER_STRING_FIRST_HALF=%%x SET "GH_VER=%GH_VER_STRING_FIRST_HALF:*VERSION-=%" if %USER_VER% == %GH_VER% GOTO NORMAL_PROCESS :UPDATE_AVAIL CLS START "" "https://github.com/KSanders7070/AIRPORT_ALIAS_CREATION/releases" ECHO * * * * * * * * * * * * * ECHO UPDATE AVAILABLE ECHO * * * * * * * * * * * * * ECHO. ECHO. ECHO GITHUB VERSION: %GH_VER% ECHO YOUR VERSION: %USER_VER% ECHO. ECHO. ECHO PLEASE CLOSE THIS BATCH FILE AND GO DOWNLOAD THE MOST RECENT UPDATE AVAILABLE: ECHO. ECHO https://github.com/KSanders7070/AIRPORT_ALIAS_CREATION/releases ECHO. ECHO. ECHO OR YOU MAY PRESS ANY KEY TO CONTINUE USING THIS VERSION. ECHO. ECHO. cd "%userprofile%\Downloads" rd /S /Q "%userprofile%\Downloads\VersionCheckWillDelete\" PAUSE :NORMAL_PROCESS CLS cd "%userprofile%\Downloads" rd /S /Q "%userprofile%\Downloads\VersionCheckWillDelete\" ECHO Your BATCH file is the most up to date version. PAUSE
3 Réponses :
Pour supprimer le répertoire, vous devez utiliser cette commande.
Ce n'est pas pour Windows cmd.exe.
'RM' n'est pas reconnu comme une commande interne ou externe, un programme opérable ou un fichier de commandes.
solution: Supprimer la ligne de démarrage "URL" autorisée à supprimer le dossier. Je ne sais pas pourquoi il dépendait du chrome mais cela résout le problème. Donc, placer la commande RD avant la démarrage "" La commande fait que tout fonctionne pour moi. P>
Il n'y avait absolument aucune raison de modifier le répertoire sur Cela dit, c'est probablement comment je ferais ce que je ferais quoi Vous faites: p> % userprofile% \ téléchargements \ versioncheckwilldelete code>, dans la première instance. De plus, il n'y a probablement aucune raison d'utiliser l'emplacement code> code> lorsque c'est l'un des objectifs du répertoire
% Temp% code>. Peu importe que vous choisissez, vous n'en avez vraiment besoin que pour le fichier
version_check.html code> que vous analyse, alors pourquoi ne pas la mettre directement dans l'emplacement choisi, au lieu de créer un nouveau répertoire et de le supprimer ensuite . (de cette façon dont vous n'avez besoin que de supprimer le fichier si nécessaire, je m'attendrais à ce que le fichier serait écrasé de toute façon) em>.
Veuillez noter @ksanders, que votre version actuelle affiche comme 1.1.2-RCX code>, pas
1.1.2-rc code>, donc le script que vous avez publié ne fonctionne pas avec la version actuelle. Je suppose que pour que cela fonctionne, vous auriez besoin de fournir une nouvelle version du script avec chaque version. Alors s'il vous plaît assurez-vous que vous avez pris en compte cela. En outre, à cause de l'inadéquation, assurez-vous que toutes les modifications que vous effectuez actuellement ne sont pas pour une version plus ancienne, par opposition à celle actuelle.
Compo- merci pour cette restructuration et pardonnez-vous au retard de ma réponse, car je suis nouveau à cela et ne considérez pas l'étiquette commune pour ces types de forums. J'aime comment votre code n'a pas besoin de la nécessité d'exporter le FindStr en tant que fichier texte et tout. Je prendrai vos conseils sur la modification du dossier Temp. J'ai apporté quelques modifications à ce que vous proposez pour des raisons de continuité pour mes autres scripts de fichiers de lots ainsi que de petits changements tels que la prise en compte de la version d'une batte pourraient ne pas commencer par un numéro.
De plus, votre PowerShell WebRequest n'aimait pas mes variables pour une raison quelconque, je suis rentré d'utiliser mon PowerShell. Si vous avez des suggestions sur la façon de gérer cela à l'avenir, je suis toutes les oreilles! : D J'ai une certaine satisfaction que les fichiers que mes processus de chauve-souris seront nettoyés afin que je pense que je vais quitter le RD là-bas, à moins que vous ne voie aucun inconvénient réel à cela? Je vous ai remercié spécialement dans une remarque au début du script et sur cette sortie de la batte sur GH. Découvrez le nouveau script ici: Github.com/ksanders7070/batch_file_version_check
Merci pour les commentaires @ksanders. Pourriez-vous développer ce que vous entendez par "WebRequest n'aimais pas mes variables", cela peut m'aider, car les seules variables utilisées dans cette ligne sont % __ appdir __% code>, qui résoudra toujours
% Systemroot% \ system32 \ code>, (ou
% \ syswow64 \ code> sur un système 64 bits couru à partir d'un
cmd.exe code> instance) Quelles que soient les modifications apportées à vos variables d'environnement et
% userprofile% code> que vous pouvez autoriser
powershell code> à développer, si vous préférez, c'est-à-dire
$ env: userprofile code >. Quant à la commande
rd code> est votre décision, je l'ai laissée dans le code ci-dessus pour vous, sans distinction.
Lorsque je prends votre ligne de code pour PS et remplacez l'URL exacte avec la variable de l'URL, il renvoie l'erreur suivante: la chaîne manque à la chaîne: ". + CatégorieInfo: ParserError: (:) [], PARENTCONTAINSERRORRECORDEXT + PARENTQUALIDERRORRORID : TerminatorexpecedAtendOfstring
Exemple:% __ appdir __% windowspowershell \ v1.0 \ powershell.exe -Noprofile -Command "invoke-webrequest -uuri \"% github_version_chk_url% "-outfile \"% userprofile% \ téléchargements \ VersionCheckwilldele \ Version_che CK.HTML \ ""
Les travaux suivants: PowerShell -Command "Invoke-WebRequest% github_version_chk_url% -Outfile 'Version_Check.html'"
Vous n'avez pas utilisé la même syntaxe que je faisais @ksanders. En supposant que % github_version_chk_url% code> ne soit pas enfermé avec des doubles quantités, (Ça ne devrait pas être) i>, alors la syntaxe correspondante serait la suivante:
% __ appdir __% windowspowershell \ v1 .0 \ POWERSHELL.EXE -NOPOFILE -COMMAND "INVOKE-wEBREQUEST -URI \"% GITUB_VERSION_CHK_URL% \ "-Outfile \"% userprofile% \ Téléchargements \ versionCheckwilldelee \ "" code>. Votre exemple n'a pas échappé à la doublequote imbriquée de fermeture après le chemin
-uRi code> avec une barre oblique inverse.
Vous êtes très bien. J'ai utilisé votre code ici et cela a fonctionné. Cependant, mon code fonctionne aussi. Quel est le pro / con pour utiliser le mien vs le vôtre? Mine: PowerShell -Command "Invoke-WebRequest% github_version_chk_url% -Outfile 'Version_Check.html'"