用非法字符重命名长文件名[复制]


5

可能重复:
如何强制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家庭(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

那里的问号确实很奇怪。它们肯定可以在Windows上创建。但是没有明智的理由这样做。
Joey

您是否在某处禁用了8.3名称创建?我在DIR / x中看不到短名
MartW

是的,这很奇怪,必须禁用。我可能会尝试DIR文件*。* - 您应该只获得1个文件,然后尝试REN文件*。* myfile.exe(或您需要的任何扩展名)。序列号也有点奇怪。你应该运行CHKDSK,但只有在恢复你需要的东西之后。
jtreser

Answers:


3

我最近发现Windows中的无效文件名可以使用以下语法进行操作:

\\.\C:\somedir\filename

这可用于删除或重命名违规文件,如下例所示:

DEL \\.\C:\test\LPT1

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

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


2

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


问题已更新
Quintin Par

2

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

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

引号保护了不稳定的角色( ?& 从shell解释为特殊字符。 (在Windows CMD shell中, ? 是一个单字符通配符。引号告诉CMD不要这样解释。)

有时这不会因其他原因而起作用,您需要采用上述其他技术之一。但是这个是首先尝试的。

[*] Unix shell更喜欢单引号( 'foo' 而不是双引号( "foo" )完全保护壳解释。 CMD shell似乎更喜欢双引号。


0

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

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

希望如此 rename 命令的通配符扩展不会对意外字符产生影响。您甚至可以尝试这一点,而无需使用稍微更精确的重命名命令移动其他文件:

rename FileTran* <newname>

(如果您不熟悉命令行控制台窗口:可以通过运行启动一个 cmd 通过XP的开始菜单上的运行命令,当你完成后,然后给出 exit 命令)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.