2 votes

Renommage par lot en supprimant la deuxième lettre du nom de fichier

J'ai environ 300 fichiers .pst que j'ai exportés d'Exchange 2010. J'ai l'intention de les importer dans un autre environnement Exchange/AD. Dans l'environnement d'origine, les noms d'utilisateur sont les suivants : FirstinitialMiddleInitialLastName c'est-à-dire Bart P. Smith serait bpsmith.

Dans le nouvel environnement, les noms d'utilisateurs sont la première initiale et le nom de famille. Donc, bsmith.

Au lieu de renommer manuellement chaque fichier pst pour l'importation, quelqu'un connaît-il un moyen de renommer par lots chaque fichier du répertoire, en supprimant la deuxième lettre du nom de fichier ?

Merci d'avance.

0 votes

La méthode la plus simple consiste à regrouper vos fichiers .pst dans un seul répertoire, puis à créer le fichier dir > filename.txt, et à utiliser le mode édition en colonnes de Notepad++ pour créer un fichier batch de 300 commandes de renommage qui ressemblerait à ceci : ren foo.pst bar.pst Une méthode plus élégante consiste à utiliser la cmdlet rename-item de powershell et à utiliser une expression rationnelle pour supprimer le deuxième caractère.

0 votes

Qu'en est-il des utilisateurs qui n'ont pas de deuxième prénom ? Bart Smith deviendrait Bmith.pst

0 votes

Il y a 300 fichiers. Il faut soit faire un tri préalable dans les dossiers "à modifier" et "à ne pas modifier", soit gérer les exceptions pendant l'édition.

4voto

D.Spetz Points 2214

Ouvrez une invite de commande dans le répertoire où se trouvent vos fichiers .pst, et placez le fichier suivant dans ce répertoire (enregistrez-le sous le nom de renamepst.cmd )

@echo off
for %%f in (*.pst) do call :renfile "%%f"
goto :eof

:renfile
set file=%1
echo rename %file% %file:~0,2%%file:~3,999%

Ce fichier batch a un echo en place afin qu'elle n'effectue aucune action. Si vous êtes satisfait de la sortie après l'exécution de renamepst.cmd dans votre fenêtre d'invite de commande, puis supprimez le echo de la dernière ligne, laissant rename %file% %file:~0,2%%file:~3,999% en place.

Veuillez cependant faire un test avant de l'utiliser !

0voto

Jonathan Rioux Points 1868

Enregistrez ce contenu dans un fichier .bat et le tour est joué :

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set file=
cd C:\test
for %%f in (*.pst) do (
    set file=%%f
    move !file! !file:~0,1!!file:~2,999!
)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X