Bonjour,
Suite à la migration d'un MAC OS Serveur très ancien vers un serveur Windows, il est apparu le problème suivant, comment renommer en masse
- des dossiers avec un "." à la fin de leurs noms
- des dossiers et des fichiers avec un espace à la fin de leurs noms
le tout sans bousiller les extentions des fichiers ou les espaces situés ailleurs dans les noms...
A noter qu'avant la migration, j'avais déjà du utiliser le script suivant pour "mettre au norme" les noms des fichiers :
Question hors sujet de cette sous partie mais qui va avec : comment restreindre les conventions de nommage de fichier pour les clients MACs sur le serveur Windows, afin de ne pas avoir à nouveau ce genre de soucis :rateau:...
Merci
Suite à la migration d'un MAC OS Serveur très ancien vers un serveur Windows, il est apparu le problème suivant, comment renommer en masse
- des dossiers avec un "." à la fin de leurs noms
- des dossiers et des fichiers avec un espace à la fin de leurs noms
le tout sans bousiller les extentions des fichiers ou les espaces situés ailleurs dans les noms...
A noter qu'avant la migration, j'avais déjà du utiliser le script suivant pour "mettre au norme" les noms des fichiers :
Bloc de code:
#!/usr/bin/perl -w
# This script renames all the files supplied as command-line args
# where necessary so that the filename is acceptable to MS Windows
# Cameron Hayne ([EMAIL="[email protected]"][email protected][/EMAIL]), June 2004
use strict;
chomp(@ARGV = <STDIN>) unless @ARGV;
# The Microsoft document at
# [URL]http://support.microsoft.com/default...b;EN-US;100108[/URL]
# says that the following characters are not allowed in filenames
# in each of the specified filesystems:
# FAT: . " / \ [ ] | : ; , =
# NTFS: ? " / \ < > | : *
# We don't do anything with the dot (.) since it clearly is allowable
# in spite of what that document says.
# And we don't do anything with the slash (/) since that character
# will not occur in OS X filenames and modifying it would cause
# troubles when a file path (with directories) is specified.
# The changing of the filenames is done via the 'tr' statements below.
# Each occurence of a character in the first curly brackets
# is replaced by the character in the second curly brackets.
foreach my $filename (@ARGV)
{
my $orig_filename = $filename;
$filename =~ tr{\\}{-};
$filename =~ tr{*?}{X};
$filename =~ tr{"><[]|:;,=}{_};
unless ($filename eq $orig_filename)
{
print "About to rename $orig_filename to $filename\n";
if (-e $filename)
{
print "Oops, there already exists a file named $filename\n";
# print "Skipping the rename - you will have to do it manually\n";
}
else
{
rename($orig_filename, $filename);
}
}
}
Question hors sujet de cette sous partie mais qui va avec : comment restreindre les conventions de nommage de fichier pour les clients MACs sur le serveur Windows, afin de ne pas avoir à nouveau ce genre de soucis :rateau:...
Merci