Script BAT renomer un fichier en ajoutant automatiquement le nom d'hote dans le nom du fichier

Le
Guillaume
Bonjour ,

J'aimerai à l'aide d'un script CMD renommer un fichier afin que son
nouveau nom devienne son nom actuel concaténé avec le résultat de la
commande "hostname".

Merci par avance de votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques Barathon [MS]
Le #709497
"Guillaume" news:%
Bonjour ,

J'aimerai à l'aide d'un script CMD renommer un fichier afin que son
nouveau nom devienne son nom actuel concaténé avec le résultat de la
commande "hostname".


J'ai une solution simple pour ajouter le résultat de la commande en tête du
nom de ton fichier:

set oldname=test.txt
for /f "usebackq" %%h in (`hostname`) do set host=%%h
set newname=%host%%fichier%

Si le nom d'hôte est "monpc", la variable newname contiendra alors
"monpctest.txt".

Pour ajouter le résultat à la fin du nom, il faut pouvoir découper le nom de
manière à insérer le "hostname" avant l'extension. Il doit exister des
méthodes natives en batch pour faire un tel découpage, mais là un gourou
batch saura mieux répondre. La tâche peut être plus ou moins complexe selon
que tu connais ou non l'extension à l'avance, ou que tu sais si elle aura
toujours la même taille ou non, etc.

Jacques

Méta-MCI \(MVP\)
Le #709496
Bonjour, Jacques !

Le 'hostname' est recopié dans la variable d'environnement
COMPUTERNAME.
Du coup, on peut l'utiliser directement dans un batch :

ren %1 %COMPUTERNAME%%1

Usage : batfile fichierarenommer


Il reste le problème des guillemets (pour les noms de fichiers contenant
des espaces). Mais, Windows s'en sort étonnamment bien. Exemple :
fichier : aaa.txt
nom_ordinateur : MONORDI

ren "aaa.txt" MONORDI"aaa.txt" donne : MONORDIaaa.txt

Pas mal, Windows, non ?


@+

MCI
Jacques Barathon [MS]
Le #709314
"Méta-MCI (MVP)" news:47493f30$0$27390$
Bonjour, Jacques !

Le 'hostname' est recopié dans la variable d'environnement COMPUTERNAME.


En effet, j'avais totalement oublié cette variable d'environnement! Bien vu.
Cela dit, la technique initiale garde tout son intérêt pour la récupération
de la sortie de n'importe quelle commande, pour laquelle la solution d'une
variable d'environnement n'existerait pas.

Il reste le problème des guillemets (pour les noms de fichiers contenant
des espaces). Mais, Windows s'en sort étonnamment bien. Exemple :
fichier : aaa.txt
nom_ordinateur : MONORDI

ren "aaa.txt" MONORDI"aaa.txt" donne : MONORDIaaa.txt

Pas mal, Windows, non ?


Oui, pas mal. :-)

Et pour l'insertion du COMPUTERNAME entre le nom et l'extension, tu as une
solution? (sans passer par Python, VBScript ou PowerShell, bien sûr :-))

Jacques

Fred
Le #709313
Dans : news:,
Jacques Barathon [MS] disait :


Hello,

Et pour l'insertion du COMPUTERNAME entre le nom et l'extension, tu
as une solution? (sans passer par Python, VBScript ou PowerShell,
bien sûr :-))


En supposant que le nom de fichier soit passé en paramètre d'un script
on peut utiliser ceci :
ECHO %~n1%COMPUTERNAME%%~x1


--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)

MCI \(ex do ré Mi chel la si do\) [MVP]
Le #709312
Re !


%~n1
%~x1


Bien vu.


@+

Michel Claveau

Gilles LAURENT [MVP]
Le #709311
"Méta-MCI (MVP)" message de
news:47493f30$0$27390$
| Bonjour, Jacques !

Bonjour,

| Le 'hostname' est recopié dans la variable d'environnement
| COMPUTERNAME.

La variable d'environnement COMPUTERNAME contient le nom NETBIOS (15
caractères maxi) de l'ordinateur tandis que l'outil hostname.exe
retourne le nom de hôte DNS (63 caractères maxi) de l'ordinateur. Donc
si la longueur du nom de hôte DNS est inférieure ou égale à 15
caractères alors la variable d'environnement COMPUTERNAME contiendra en
effet le nom de hôte. En revanche, si la longueur du nom de hôte DNS est
supérieure à 15 caractères alors la variable d'environnement
COMPUTERNAME contiendra le nom de hôte DNS tronqué à 15 caractères. Par
exemple :

FQDN=computer.domain.local
hostname=computer
COMPUTERNAME=COMPUTER

FQDN=computer901234567890.domain.local
hostname=computer901234567890
COMPUTERNAME=COMPUTER9012345

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Méta-MCI \(MVP\)
Le #709310
Bonsoir !

COMPUTERNAME contient le nom NETBIOS (15 caractères maxi)


Ok.
%COMPUTERNAME% est la copie du nom NetBios.
on a aussi la possibilité d'utiliser %USERDOMAIN%

@+

Michel Claveau

Publicité
Poster une réponse
Anonyme