Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

7 réponses
Avatar
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

7 réponses

Avatar
Jacques Barathon [MS]
"Guillaume" wrote in message
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

Avatar
Méta-MCI \(MVP\)
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
Avatar
Jacques Barathon [MS]
"Méta-MCI (MVP)" wrote in message
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

Avatar
Fred
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)

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


%~n1
%~x1


Bien vu.


@+

Michel Claveau

Avatar
Gilles LAURENT [MVP]
"Méta-MCI (MVP)" a écrit dans le
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
Avatar
Méta-MCI \(MVP\)
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