Bon voilà, j’ai jamais rien compris à la syntaxe des Batchs donc je vous demande de l’aide pour réaliser une petite manip :
Je veux copier l’intégralité du dossier F:DCIM100CASIO Dans C:Mes documentsMes imagesDate-et-petit-nom-en-plus
@mkdir "C:Mes documentsMes images%1"
@copy F:DCIM100CASIO "C:Mes documentsMes images%1"
[/quote]voila ^^
après tu appelle le batch avec nomdubatch.bat Date-et-petit-nom-en-plus
(dans une console ou dans la boite de dialogie Exécuter) et c'est magique [img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]
Le répertoire “Mes documents” n’est pas sur C:. Vérifie le chemin en faisant cllic droit->propriétés sur “Mes Documents” (dans l’explorateur) et tu adaptes avec le chemin indiqué.
Respectes aussi les guillements pour ne pas avoir d’emmerdes avec les espaces dans les chemins Ce message a été édité par Moktar le 07/11/2003
Le batch n’a pas a te demander le nom du dossier à créer, c’est a toi de le spécifier lorsque tu lances le batch.
En gros, il ne faut pas que tu le lances en double-cliquant dessus mais depuis une fenêtre DOS, sous la forme suivante : nomdubatch.bat Date-et-petit-nom-en-plus
Au fait, tant qu’on y est, est-il possible que le batch demande que l’on entre le nom du nouveau dossier ? Ce message a été édité par NaarShadaa le 07/11/2003
Merci monsieur le modérateur mais ça j’avais compris.
Ce que je me demande c’est si il est possible que le batch, lorsque je l’ouvre en double cliquant dessus, me demande quel est le nom du dossier qu’il doit créer.
@set /p ALBUMNAME=Entrez le sujet de l'album :
@mkdir "%USERPROFILE%Mes documentsMes images%DATE% %ALBUMNAME%"
@echo Copie en cours...
@copy F:DCIM100CASIO "%USERPROFILE%Mes documentsMes images%DATE% %ALBUMNAME%">NUL
@set ALBUMNAME=
[/quote]Et hop, tu rentres le-petit-nom-en-plus quand on te le demande.
(chaque ligne commence par un '@')
[i]Ce message a été édité par xentyr le 09/11/2003[/i]
Bah ça ne marche pas, quand je l’ouvre, il ne me demande même pas d’entrer un nom de répertoire, puis après il me dit
[quote]Impossible de créer le repertoire
Copie en cours…
Repertoire non valide
Et aussi il me crée un repertoire DATEALBUMNAME dans le même répertoire où se trouve le batch.
Qu’est-ce qui se passe ?
Moi j’ai écrit ça
[quote]@set dossier=Mam @mkdir “C:/Mes Documents/Mes Images/%dossier%” @echo “Copie en cours…” @copy “F:DCIM100CASIO” “C:/Mes Documents/Mes Images/%dossier%”[/quote]Mais ça ne résoud toujours pas mon problème, le batch, quand je l’ouvre ne me demande pas de nom de dossier. Ce programme doit être utilisé par des débutants donc c’est important. Dois-je perdre espoir ?? Ce message a été édité par NaarShadaa le 09/11/2003
Euh tu es sous quel OS au fait ? Car mon batch fonctionne parfaitement sur XP Pro ( admin ou compte limité ).
@set /p ALBUMNAME=Entrez le titre de l'album :
@mkdir “%USERPROFILE%Mes documentsMes images%DATE% %ALBUMNAME%” @echo Copie en cours… @copy F:DCIM100CASIO “%USERPROFILE%Mes documentsMes images%DATE% %ALBUMNAME%”>NUL @set ALBUMNAME=[/quote]Tu le lances, et il te demande dans une fenêtre MS-DOS “Entrez le titre de l’album” qu’il enregistre dans une variable d’environnement. Tu rentres alors “Week-end à New-York”. Ensuite, il te crée dans le répertoire de ton utilisateur courant le répertoire “Mes documentsMes images2003-11-09 Week-end à New-York” (il crée toute l’arborescence au pire, mais toujours dans le répertoire du profil courant). Et le batch copie les fichiers dedans. S’il te met “Impossible de créer le répertoire”, c’est parce qu’un limited account n’a pas le droit de créer des répertoires n’importe où dans C:, d’où mon utilisation de la variable d’environnement %USERPROFILE% pour récupérer le répertoire maison où l’utilisateur courant a tous les pouvoirs.
Essaie de faire un copier/coller de mon script. Je l’ai écrit en plus petit pour que ça respecte au mieux les lignes.
PS: La dernière ligne, c’est pour supprimer la variable d’environnement.
[Edit] Rhaaa la 4ème ligne est quand même trop longue. Il n’y a pas d’espace entre les ‘%’ et les noms de variable d’environnement. La fin de la ligne est donc :
[…]Mes images%DATE% %ALBUMNAME%">NUL
[RE-EDIT] Fais gaffe aux slashs et anti-slashs. Ce message a été édité par xentyr le 09/11/2003
$hackinput$.bat fc con nul /lb1 /n|date|find " 1:"
entrez.bat echo set ALBUMNAME=
entrez.bat echo :loop
entrez.bat echo if not ‹ %%ALBUMNAME%%== › set ALBUMNAME=%%ALBUMNAME%% %%6
entrez.bat echo if ‹ %%ALBUMNAME%%== › set ALBUMNAME=%%6
entrez.bat echo shift
entrez.bat echo if not ‹ %%6== › goto loop
call $hackinput$.bat
del $hackinput$.bat>nul
del entrez.bat>nul
echo Nom de l’album : %ALBUMNAME%
$hackdate$.bat echo.|date|find « La »
la.bat echo set DATE=%%5
call $hackdate$.bat
del $hackdate$.bat>nul
del la.bat>nul
for %%D in (%DATE%) do if %%D=%DATE% goto IMPORT
echo Date : %DATE%
::else replace slashes by hyphens in date format
set ENTRYPOINT=goto:HEAD
$unslash$.bat echo %%ENTRYPOINT%%
$unslash$.bat echo :HEAD
$unslash$.bat echo set DATE=%%1
$unslash$.bat echo set ENTRYPOINT=goto:QUEUE
$unslash$.bat echo goto END
$unslash$.bat echo :QUEUE
$unslash$.bat echo for %%%%« / » in (-) do set DATE=%%DATE%%%%%%%%1
$unslash$.bat echo :END
for %%T in (%DATE%) do call $unslash$.bat %%T
set ENTRYPOINT=
del $unslash$.bat>nul
echo Date transformee : %DATE%
:IMPORT
mkdir « C:Mes documentsMes images%DATE% %ALBUMNAME% »
echo Copie en cours…
copy F:DCIM100CASIO « C:Mes documentsMes images%DATE% %ALBUMNAME% »>nul
set ALBUMNAME=
set DATE=
[/quote]Huhu, c’est marrant de faire remonter ses vieux trucs.
(Ça fonctionne sous Windows 98, donc ça devrait fonctionner aussi sous WinME)
Edit: Correction de fautes de frappe et ajout de petits textes en plus ! Ce message a été édité par xentyr le 09/11/2003
@echo off
echo Entrez le nom de l'album et la date (pas d'espaces ni de caractères spéciaux)
echo puis faites [Ctrl]+[Z] (ca doit afficher "^Z") puis faites [Entrée] :
copy con temp.txt
copy copie.txt + temp.txt temp.bat
temp.bat
del temp.txt
del temp.bat
echo le nom du dossier est %dossier%
copy F:DCIM100CASIO "C:Mes documentsMes images%dossier%"
et un fichier copie.txt :
set dossier=
ATTENTION IL NE FAUT PAS TAPER ENTREE APRES CETTE LIGNE ! le = doit être le dernier caractère du fichier, il ne doit y avoir qu'une seule ligne