5

Возможный дубликат:
Как заставить Windows XP переименовать файл со специальным символом?

У меня есть файл 2GB в Windows, который имеет длинное имя файла FileTransfer.dll?Cmd=1&MN=1619353607&Dir=1&Mode=0&Off=0&TS=FA596160-1BFB-4113-9E10-B196243A73F3&CVN=5,0,0,32
Я не уверен, как он получил имя файла таким образом (возможно, из менеджера загрузки)

Теперь, когда я пытаюсь переименовать его, он говорит

---------------------------
Error Renaming File or Folder
---------------------------
Cannot rename file: Select only one file to rename, or use MS-DOS wildcards (for example, *.txt) to rename a group of files with similar names.
---------------------------
OK   
---------------------------

Как мне переименовать этот файл? Я не могу использовать этот файл любым другим способом (например, загрузка).
Я нахожусь на Windows XP дома (NTFS), и я до сих пор не использовал Linux

Редактировать :
dir /X дает мне

E:\Downloads>dir /X
 Volume in drive E is x
 Volume Serial Number is c

 Directory of E:\Downloads

02/04/2010  05:44 PM    <DIR>                       .
02/04/2010  05:44 PM    <DIR>                       ..
01/27/2010  09:12 PM            49,745              1.l
01/28/2010  12:09 AM     2,501,894,144              FileTransfer.dll?Cmd=1&MN=16
19353607&Dir=1&Mode=0&Off=0&TS=FA596160-1BFB-4113-9E10-B196243A73F3&CVN=5,0,0,32

01/28/2010  12:09 AM         3,138,664              wget-log.1
10/19/2009  02:46 AM        43,137,416              zapSetup_91_008_000_en.exe
               4 File(s)  2,548,219,969 bytes
               2 Dir(s)  80,069,509,120 bytes free

4 ответа4

3

Недавно я обнаружил, что недействительными именами файлов в Windows можно управлять с помощью этого синтаксиса:

\\.\C:\somedir\filename

Это может быть использовано для удаления или переименования поврежденного файла, как в следующих примерах:

DEL \\.\C:\test\LPT1

REN \\.\C:\test\LPT1 file.txt

Тестирование показывает, что этот синтаксис также работает, если первая часть пути - "\\?\" вместо "\\.\".

2

Найдите короткое имя файла с помощью DIR /X, затем вы должны использовать REN, чтобы переименовать короткое имя в новое имя.

2

Во многих случаях самый простой способ сделать это - указать имя файла. [*]

rename "long-file-name-here" new-short-file-name

Кавычки защищают вонючих персонажей (? и & и др.) интерпретируются оболочкой как специальные символы. (В оболочке Windows , ? является односимвольным символом подстановки. Цитаты говорят CMD не интерпретировать это так.)

Иногда это не работает по другим причинам, и вам придется прибегнуть к одному из других упомянутых методов. Но этот стоит попробовать первым.

[*] Unix оболочки предпочли бы одиночные кавычки ('foo' вместо двойных кавычек ("foo" для полной защиты от интерпретации оболочки. Оболочка CMD, похоже, предпочитает двойные кавычки.

0

Вы можете попробовать переместить все остальные файлы из каталога, а затем из окна консоли сделать

e:
cd e:\Downloads
rename * <newname>

Надеемся, что подстановочный знак команды rename не будет скрывать неожиданные символы. Вы можете даже попытаться сделать это, не перемещая другие файлы, с помощью немного более тонкой команды переименования:

rename FileTran* <newname>

(если вы не знакомы с консольными окнами командной строки: один из них можно запустить, запустив cmd помощью команды run в стартовом меню XP, а когда вы закончите, введите команду exit )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .