Это является действительно озадачивающим. У меня есть много видео, которые были сохранены с помощью Mac OS, и теперь я должен отредактировать их на Windows XP. Я скопировал файлы с помощью HFSExplorer. Программное обеспечение Editing отказывается открывать файлы с их текущими именами, и до сих пор я не нашел, что способ обработать в пакетном режиме переименовывает все файлы.
Названия файлов похожи на это:
clip-2009-10-01 21; 26; 00.mov
Но я подозреваю в OSX, время было 21:26:00.
Я хотел бы заменить пространство подчеркиванием и точки с запятой с тире.
Я попробовал несколько объемов, переименовывают приложения, с; и: но напрасно. Также я попробовал rename.pl, но также и напрасно.
Обновленный:
Мы находимся под предположением тот "clip-2009-10-01 21; 26; 00.mov" не является фактическим именем файла; одна возможность состоит в том, что фактическое имя файла является "clip-2009-10-01 21:26:00 .mov". Однако мы не можем проверить это в соответствии с Windows.
Мы, возможно, не должны.
Отказоустойчивый метод:
Начальная загрузка к Linux LiveCD. Ubuntu 9.04 имеет хорошую поддержку NTFS, и Linux обрабатывает намного больше wonky-characters-in-filenames, чем Windows. Жемчуг переименовывает сценарий, может быть включен как система, переименовывают команду.
Метод пакета This-Might-Actually-Work (новый сценарий!)
DIR/X команды DOS показывает короткие имена файлов, если они существуют в Вашей системе.
$ cmd
c:\test> dir /x
Volume in drive E is NUVOL
Volume Serial Number is 80D3-A96D
Directory of e:\tor\test
10/04/2009 05:15 AM <DIR> .
10/04/2009 05:15 AM <DIR> ..
10/04/2009 05:11 AM 0 CLIP-2~1.MOV clip-2009-10-01 21;26;00.mov
1 File(s) 0 bytes
2 Dir(s) 5,201,670,144 bytes free
Если они действительно будут существовать, то команда REN переместит их в новое имя; новое имя может быть новым (допустимым) длинным именем файла.
c:\test> ren CLIP-2~1.MOV "clip-2009-10-01_21-26-00.mov"
Это - то, как зафиксировать тот.
К пакетной обработке все они необходимо 1) захватить список всех файлов, которые Вы хотите переместить; 2) запустить короткий скрипт жемчуга для преобразования списка в пакетный файл с соответствующими командами REN; и 3) запустить получающийся скрипт пакетной обработки.
c:\test> dir /x > mybrokenfiles.lst
$ cat mybrokenfiles.lst | perl -lne 'next if not /MOV/; s/^.{1,39}//; s/^/ren /; s/ (\d\d);(\d\d);(\d\d)/_$1-$2-$3/; print' > fixmybrokenfiles.bat
c:\test> fixmybrokenfiles.bat
Командная строка жемчуга принимает очень конкретный формат ввода, поэтому если DOS, перечисляющий выставочные длинные имена файлов в чем-то другом, чем "21; 26; 00.mov" формат, это, вероятно, не сделает точно, что Вы хотите. Если Вы пробуете его, перепроверка, что сценарий пакетной обработки выглядит правильным прежде, чем выполнить его.
Если Вы довольны жемчугом (или sed/awk, Python, безотносительно), можно написать сценарий этого сами. Но если DIR/X не показывает короткие имена файлов, Ваша система имеет их отключенный, и это решение не поможет.
Исходный ответ: не полезный с тем, что мы знаем теперь, но если Вы копируете этот вид файла прочь OSX снова, можно использовать это ПЕРЕД копией как профилактический шаг.
Я использую командную строку много и в Windows и в системах Linux. Существует удобный сценарий жемчуга, плавающий вокруг Интернета, который позволяет пакетный файл, переименовывает использующий стандартный regex's жемчуга (Google для rename.pl для нахождения его).
Под Cygwin на окнах используйте это в каталоге, в котором расположены Ваши файлы переименовать их:
$ ls
clip-2009-10-01 21;26;00.mov
$ rename.pl 'tr/ ;/_-/;' *
$ ls
clip-2009-10-01_21-26-00.mov
Вполне уверенный моя версия прибыла из Поваренной книги Perl:
#!/usr/bin/perl -w
# rename - Larry's filename fixer
$op = shift or die "Usage: rename expr [files]\n";
chomp(@ARGV = <STDIN>) unless @ARGV;
for (@ARGV) {
$was = $_;
eval $op;
die $@ if $@;
rename($was,$_) unless $was eq $_;
}
Выезд Переименовывает Ведущее устройство, он имеет несметное число способов управлять именами файлов в пакете. Вы захотите проверить вкладку замены.
Переименуйте Ведущее устройство, бесплатное программное обеспечение.
Lupas Переименовывают, БЕСПЛАТНО РАСПРОСТРАНЯЕМАЯ программа, разработанная для переименования большого количества файлов. Это работает над Win95, Win98, WinME, WinNT, Win2K и WinXP. Это - простой.EXE файл и не нуждается ни в каких других внешних библиотеках.
Вот некоторые функции:
Общий командующий включает инструмент переименования пакета под названием, Мультипереименовывают Инструмент (ярлык по умолчанию является Ctrl+M).
В Вашем случае можно переименовать файлы путем выполнения процесса дважды, однажды для замены пространства и однажды заменять точку с запятой.
Другой путь состоит в том, чтобы использовать, переименовывает маску - избранный диапазон перед пространством, добавляет подчеркивание, затем располагается после пространства при замене полу двоеточия тире с помощью Поиска и замены.
Подобный couiple других решений, Объем Переименовывает Утилиту, утилита, это сделает задание. Я нахожу это очень полезным и простым в использовании для моих объемных потребностей переименования файла.
Каковы полномочия на файле? Вы уверены, что у Вас есть разрешение переименовать их? В противном случае возьмите владение файлов и попробуйте еще раз.
Самостоятельно, мне нравится ответ ~quack. +1.
Но для потомства вот то, что я собирался отправить.
Я использовал StExBar в Инструментах Stefan довольно долгое время теперь. Это добавляет панель инструментов на Windows Explorer с несколькими удобными функциями.
(У него есть несколько инструментов, но этим определенным является StExBar),
Можно выполнить требуемый, переименовывают с двумя простыми командами. Вот снимок экрана первого, которое показывает Вам предварительный просмотр файлов, переименовываемых, и во что они будут переименованы.
Под предположением, что имена файлов содержат странные и невидимые символы, способ продолжиться состоит в том, чтобы использовать названия DOS старых 8,3 форматов. Для обнаружения этих имен используют-x параметр:
Теперь используйте краткое название для переименования файла:
ren CLIP-2~1.MOV "clip-2009-10-01_21_26_00.mov"
При использовании вставки копии для переименования файла, бойтесь распространять странные символы, не оставляйте незаполненные символы на новое имя (потому что они не могли бы действительно быть пробелом).
Интересная проблема.
Можно записать собственный сценарий. Вот один сценарий, который будет работать. Это ЗАМЕНИТ ВСЕ ДВОЕТОЧИЯ, ТОЧКИ С ЗАПЯТОЙ, ПРОБЕЛЫ С ПОДЧЕРКИВАНИЕМ. Я предположу, что файлы находятся в E:/, и имена следуют за шаблоном clip*.mov. Можно измениться, это оценивает в сценарии правильным значениям. Можно настроить сценарий еще больше, если Вы желаете.
# Script Mac2WindowsFileTransfer.txt
# Go to directory where files are stored.
cd "E:/" ### CHANGE THIS TO YOUR CORRECT VALUE. ###
# Get a list of clip*.mov files.
var str list ; lf -rng "clip*.mov" > $list ### CHANGE THIS TO YOUR CORRECT VALUE. ###
# Go thru files one by one.
while ($list <> "")
do
# Get the next file.
var str file
lex "1" $list > $file
# Create the new name.
var str newname
stex -p "^/^l[" $file > $newname
# REPLACE ALL COLONS, SEMICOLONS, SPACES WITH UNDERSCORE.
while ( { sen -r "^(\:\; )^" $newname } > 0 )
sal -r "^(\:\; )^" "_" $newname
# Rename file.
system rename ("\""+$file+"\"") $newname
done
Сохраните сценарий как C:/Scripts/Mac2WindowsFileTransfer.txt. Сценарий находится в biterscripting (http://www.biterscripting.com). Можно загрузить бесплатно biterscripting. Работайте путем ввода следующей команды в biterscripting.
script "C:/Scripts/Mac2WindowsFileTransfer.txt"
Patrick