Recuperation nom dossier bat

Résolu/Fermé
MAXIME - Modifié le 19 déc. 2020 à 23:29
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 - 30 déc. 2020 à 17:18
Bonjour,


je fais suite au post de
.BAT > Récupérer chemin d'un dossier [Résolu/Fermé]
micromega - 27 nov. 2019 à 16:53
 micromega - 2 déc. 2019 à 15:08

Je n'arrive pas a cibler un repertoire particulier a part le dernier avec le code suivant :
SET RP=
SET RP=%~P0
SET RP=%RP:\= %
SET RP=%RP:~1,-1%
FOR %%A IN (%RP%) DO (SET RP=%%A)
ECHO DERNIER REPERTOIRE DU CHEMIN : %~P0%
ECHO.EST : %RP%

echo %RP%


J'aimerai pouvoir cibler un répertoire dans une cible d'accès pour intégrer ce résultat dans un nom de fichier

Je souhaiterais via un code bat créer des fichiers avec un nommage incrémentiel et avec la date.

Jusque-là pas de soucis j’ai réussi à faire ça avec des trucs venant d’internet.

La règle de nommage est la suivante :

Z_NOM DOSSIER CIBLE DANS CHEMIN ACCES_201211_10001_. EXTENSION
s:\ENTREPRISE\TKMI\01 CLIENTS\NOM CLIENT\1500\02_CONCEPTION\
Je souhaiterais que lors de la création du fichier par la commande .bat qu’il affiche en nom de fichier ceci :
Z_1500_201211_10001_.EXT
Quel code écrire pour que la commande .bat détecte le nom de dossier « 1500 » dans laquelle elle est ?
Sachant que c’est une variable qui changera suivant la ou la commande .bat sera
Je souhaiterais aussi pouvoir changer le numéro de position de ce dossier à afficher

j'ai essayer avec ce code mais sans succès
@echo off
setlocal enabledelayedexpansion

set index=0

for /f "delims=" %%A in ('2^>nul dir /b /ad') do (
 
set /a index+=1
 if !index! EQU 3 (set dossier=%%~fA)

)

echo %dossier%

pause


le code complet est :
@echo off
setlocal enabledelayedexpansion

set  index=0
set  d=%date:~6,4%
set  m=%date:~3,2%
set  j=%date:~0,2%
set  nombre=1000
set  ext=SLDPRT
set     prefixe=Z_
set sep=_

SET RP=
SET RP=%~P0
SET RP=%RP:\= %
SET RP=%RP:~1,-1%
FOR %%A IN (%RP%) DO (SET RP=%%A)
ECHO DERNIER REPERTOIRE DU CHEMIN : %~P0%
ECHO.EST : %RP%

echo %RP%

set FOLDER=%RP%

:Boucle
if not exist   %prefixe%%FOLDER%%sep%%d%%m%%j%_%nombre%_.%ext% goto Copie
set /a nombre+=+1
goto Boucle
:Copie
copy %prefixe%.%ext%  %prefixe%%FOLDER%%sep%%d%%m%%j%_%nombre%_.%ext%

Je souhaiterais metre au point la partie "folder"


D'avance Merci

EDIT : Ajout des balises de code

28 réponses

bonsoir barnabé ,

En relisant cette page je me rend compte que les post ne sont pas chronologiques ...

JE tenais a en faire un dernier pour le sujet car tout fonctionne super bien

Je te remercie bcp .

SI tu es toujours dispo j'aurais surement d'autre demande dans ce domaine du bat plu tard
Je me ferais un plaisir de te demander si jamais je ne trouve pas de mon coté

Merci à toi ami développeur
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
23 déc. 2020 à 21:30
Oui effectivement c'est un peu le bazar avec tous ces messages, pour l'ordre chronologique tu peux cliquer sur "Date" juste en dessous du post initial, mais ça ne sera quand même pas parfait.

Content d'avoir pu t'aider. Si tu as des questions/remarques à propos du script n'hésite pas.

Si par la suite tu as d'autres demandes en batch, tu me trouveras sur ce forum, en mode no-life ;)

Bonne continuation.
0
Bonjour Barnabé ,

A propos de nos derniers échanges nous sommes partie via le language script .bat

J'ai eu comme idée de passer par un exécutable plutôt que la commande CMD .

Pour ce faire , est ce que dans un premier temps nous sommes sur le bon langage de base ?
Quelle application créer les exécutable ? comment on créer les fenêtre ?

j'aimerais en savoir plus à ce sujet

D'avance Merci
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 26 déc. 2020 à 20:13
Salut Maxime, tu peux tout à fait transformer le script en exécutable, il doit y avoir 2 ou 3 logiciels gratuits capables de faire cela. Je te suggère celui que je connais bien :
https://www.commentcamarche.net/telecharger/developpement/4555-bat-to-exe-converter/

Cependant suivant le logiciel utilisé il peut y avoir quelques adaptations à faire au niveau du script, car il faut savoir que cela ne génère pas un vrai exécutable, ça ressemble plutôt à une archive qui contient ton script et l'exécute depuis un fichier temporaire.

Il faut savoir aussi qu'en empaquetant ton .bat dans un .exe tu augmentes le risque de détection (comme faux-positif) de ton antivirus. Je peux t'en parler j'ai récemment été dans cette situation avec mon ersatz de Teamviewer. Pour diminuer ce risque, j'utilise maintenant IExpress 2.0 qui est inclus dans mon Windows 7 :
https://stackoverflow.com/questions/28174386/how-can-a-bat-file-be-converted-to-exe-without-third-party-tools
0
Ok d'accord ,

Je voulais me diriger vers une interface plus agréable niveau visuel .

Mon idée était une sorte de "user form" comme sur Excel mais avec une fenêtre simplement par dessus l'explorateur Windows.

Si en améliorant le visuel on perturbe le fonctionnelle alors je préfère rester comme ca .
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 26 déc. 2020 à 20:30
Pour la sélection du dossier, je peux te proposer l'ouverture d'une petite fenêtre de l'explorateur, comme quand tu fais "enregistrer sous" sur Excel ou autre.
Mais dans ce cas je pense que tu perds la méthode de copier-coller directement un chemin.

A toi de voir.
0
MAXIME > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
26 déc. 2020 à 20:59
je vois ce que tu veux dire .

C'est copy to reg ?
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > MAXIME
Modifié le 26 déc. 2020 à 22:07
Je ne connais pas copy to reg.
0
MAXIME > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
26 déc. 2020 à 22:44
c'est un truc qui s'ajoute au registre windows un sorte d'explorateur pour copier ou couper dans le dossier de ton choix

très pratique un peu comme envoyer vers mais avec choix de la cible
0
Bonjour Barnabé ,

C'est en effet bcp plus visuel et agréable .

J'aime bcp l'option de la création de dossier dans la fenêtre , même si en temps normal le dossier sera créé par un autre programme et de manière automatique à la création du client et de l'affaire

Je n'ai plus la détection du dossier client mais bon ca doit venir du fait que c'est pas une cible unc

H:\____TKMI\01_CLIENTS\ERM
0 1

Pour rappel ce qui est ciblé c'est ce qui est après "01_CLIENTS"
Je viens de faire le test de chez moi ca doit être pour ca que ca fonctionne pas.

Il y a une légère secousse de l'ecran quand on lance la commande
Est il possible de lancer en mode "silencieux" l'invite de commande ?

L'affichage au premier plan du "petit explorateur" ne s'effectue pas il reste derrière

Dans le cas ou on voudrait éditer l'aspect visuel de ces fenêtres , ca se passe comment ?
Rajout de boutons possibles ? Raccourcis dans la fenêtre ? Ciblage uniquement des dossier réseaux ?

Je pense que ta dernière réponse ici apporte réponses a l'une des questions que j'ai poser hier sur un sujet semblable;
A approfondir

Bien à toi .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 27 déc. 2020 à 13:42
Il y a une légère secousse de l'ecran quand on lance la commande
==>> je pense que tu veux parler de la console qui apparaît puis se minimise dans la barre des tâches. Pour améliorer légèrement tu peux supprimer cette ligne au début du script :
cmdFocus /center

La meilleure solution est de créer un raccourci vers le script, puis tu paramètres ce raccourci pour lancer le script en mode minimisé.

Est il possible de lancer en mode "silencieux" l'invite de commande ?
==>> oui en convertissant le script .bat en .exe mais dans ce cas j'ai bien peur que les fenêtres des commandes externes soient invisibles elles aussi

L'affichage au premier plan du "petit explorateur" ne s'effectue pas il reste derrière
==>> je n'ai pas ce problème, pourrais-tu m'envoyer une capture d'écran ?

Dans le cas ou on voudrait éditer l'aspect visuel de ces fenêtres , ca se passe comment ?
==>> il y a au total 3 fenêtres correspondantes à 3 commandes différentes (du même auteur) :
https://www.horstmuc.de/w32dial.htm#wprompt

Certaines commandes peuvent se paramétrer notamment les boutons et le texte, mais ça reste très basique. Si ce genre de fenêtres t'intéressent tu devrais plutôt choisir un autre langage comme Visual Basic (vbs ou vb.net) par exemple.

Raccourcis dans la fenêtre ?
==>> je suis pas sûr d'avoir bien compris mais je dirais non.

Ciblage uniquement des dossier réseaux ?
==>> la sélection d'un dossier par défaut est possible

0
Les 4 executables se copient dans le dossier la ou va copier les fichiers

Tu as ca aussi ?
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
27 déc. 2020 à 14:22
Non les exécutables se mettent là où il y a le script, c'est plus simple comme ça.
0
je les ai pourtant dans le dossier final

Je vois pas quoi faire ...

Est ce que ca vient du fait que c'est sur une clef usb ?
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 27 déc. 2020 à 14:38
Chaque commande contient un fichier texte qui indique comment l'utiliser.

Regarde dans mon script comment j'ai fait.
0
Je regrette je comprend la base du code enfin je pense mais je vois pas comment régler le problème.

Il y a bienun dossier tmp qui fait reference où sont les .bat je pense mais ca copie tjr les .exe dans le dossier où l'on enregistre les fichier
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
27 déc. 2020 à 15:44
Explique ce que tu essaies de faire et montre ton code.
0
MAXIME > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
27 déc. 2020 à 15:52
le code est celui que tu as envoyer ce matin venant du liens suivant

https://pastebin.com/2GrBJZmJ

Tout fonctionne bien quand on double clique sur le sldprt.bat

Ca copie les .exe quand je lance la cmd par un raccourci / via le menu contextuel

Avec Ultimate Windows Context Menu Customizer. j'ai ajouter deux boutons l'un pour les assemblage et l'autre les pieces
Ce qui me permet d'avoir sous la main la commande de création de pièces / assemblages

Sauf que avec ce systeme il copie les fichiers .exe

on pourrait mettre dans le script qqch qui ne les fais pas apparaitre ou les supprimer en fin de code ?

QU'en pense tu ?
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > MAXIME
27 déc. 2020 à 16:28
Ce n'est pas une copie, c'est juste une création de fichier.

Il faut rajouter cette ligne au début du script entre la commande COLOR et la commande IF NOT EXIST :
cd /d %~dp0
0
MAXIME > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
27 déc. 2020 à 17:31
Super c'est top .

Je pense que on va en rester la sur ce sujet déjà bien rempli et commenté .
Il est possible de clôturer la demande ?

Encore une fois un très grand merci

Je sais pas si tu as vu les deux autres questions que j'ai posé sur le forum hier ?
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > MAXIME
27 déc. 2020 à 17:38
De rien, j'ai vu une autre demande, c'est tout.
D'ailleurs cette demande ressemble pas mal à la première, si ce n'est qu'il s'agit d'un dossier à copier et non d'un fichier, enfin si j'ai bien compris.
0