重命名包含非法字符的长文件名

重命名包含非法字符的长文件名

可能重复:
如何强制 Windows XP 重命名具有特殊字符的文件?

我在 Windows 中有一个 2GB 的文件,它的文件名很长,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 Home(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

答案1

使用 DIR /X 找到文件的短名称,然后使用 REN 将短名称重命名为新名称。

答案2

我最近发现可以使用以下语法来处理 Windows 中的无效文件名:

\\.\C:\somedir\filename

这可用于删除或重命名有问题的文件,如以下示例所示:

DEL \\.\C:\test\LPT1

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

测试表明,如果路径的第一部分是“\\?\”而不是“\\.\”,此语法也有效。

答案3

在许多情况下,最简单的方法是引用文件名。[*]

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

引号可防止 shell 将奇怪的字符(?&和其他字符)解释为特殊字符。(在 Windows CMD shell 中,?是单字符通配符。引号告诉 CMD 不要这样解释。)

有时这种方法由于其他原因不起作用,您需要求助于上述其他技术之一。但这是首先要尝试的方法。

[*] Unix shell 更喜欢使用单引号 ( 'foo') 而不是双引号 ( "foo"),以便完全避免 shell 解释。CMD shell 似乎更喜欢双引号。

答案4

您可以尝试将所有其他文件移出目录,然后从控制台窗口执行

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

希望rename命令的通配符扩展不会因意外字符而出现问题。您甚至可以尝试此操作,而无需使用稍微更精细的重命名命令来移动其他文件:

rename FileTran* <newname>

(如果您不熟悉命令行控制台窗口:可以cmd通过 XP 的开始菜单上的运行命令来启动它,完成后输入exit命令)

相关内容