Problème batch invite de commandes

-
Bonjour,
j'ai un problème avec mon programme batch que ouvre puis ferme instantanément cmd(ou l'invite de commandes)
Je voudrais que mon programme me demande si oui ou non je veux renommer mon fichier.
voila mon code

@ECHO OFF 
title Perso
IF NOT EXIST TestRen md TestRen
:Q
echo Êtes vous sûr de vouloir renommer le fichier Y=Oui N=Non(Y/N) 
set/p"cho=>"
if %cho%==y goto REN
if %cho%==Y goto REN
if %cho%==n goto END
if %cho%==N goto END
goto Q
:REN
rename TestRen "Hello"
echo Votre fichier a bien été renommer

:END
exit
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
26949
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
15 octobre 2019
5554
1
Merci
Bonjour,

Pour rentrer un choix O/N tu devrais utiliser la commande CHOICE (derrière il faut tester errorlevel à 1 ou 2). Ou voir la bonne syntaxe de la commande SET

@ECHO OFF

CHOICE /C ON /M "Êtes vous sûr de vouloir renommer le fichier ? "
echo %ERRORLEVEL%

set /p cho=Êtes vous sûr de vouloir renommer le fichier (O/N) ? 
echo %cho%

pause



Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 63058 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jee pee
Messages postés
3269
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
15 octobre 2019
872
0
Merci
Salut.

Pour ton code...
set/p"cho=>" 

enlève le >

Et d'ailleurs, tu crées non pas un fichier, mais un dossier.
Donc, ton code (corrigé) permet donc de renommer (ou non) un dossier, pas un fichier....

Par contre, tu ne mets pas de dossier complet (TestRen)
-> Si tu lances ton bat normalement, le dossier sera créé/renommé là où se trouve le fichier bat
-> Si tu lances ton bat en tant qu'admin, le dossier actuel, c'est c:\windows\system32, et donc le dossier sera créé/renommé dans system32

Pour que le dossier renommé/crée soit dans le même dossier que ton bat, il faut indiquer que le dossier actuel, c'est le dossier où se trouve ton bat...


Donc, après ton @echo off, rajoute cette ligne :
cd %~dp0

Cela aura pour effet d'indiquer que le dossier actuel, c'est vraiment le dossier où est exécuté ton fichier bat.

++

Comme un sage m'a dit : « en France, on a le droit de tout faire....
Faut juste ne pas se faire choper. »
Commenter la réponse de little boy62