2013-07-19 206 views

回答

6

在PowerShell中:

Get-ChildItem | Rename-Item -NewName { $_.Basename.ToUpper() + $_.Extension } 

或更短:

ls | ren -n { $_.Basename.ToUpper() + $_.Extension } 
+0

你太棒了!非常感谢你。 – user2600242

+0

这是最好的答案。在PowerShell中对代码进行编码/粘贴,然后指向您要将其重命名为文件的文件夹并运行。像冠军一样工作! – user2600242

1

在VBScript:

Set fso = CreateObject("Scripting.FileSystemObject") 
For Each f In fso.GetFolder(".").Files 
    f.Name = UCase(fso.GetBaseName(f)) & "." & fso.GetExtensionName(f) & "_" 
    f.Name = Left(f.Name, Len(f.Name)-1) 
Next 

必须将文件重命名为一个临时的名头,因为FileSystemObject的情况下, - 否则会抱怨文件已经存在。

+0

有没有什么办法可以将它自动化并将其保存在.vbs脚本中,并且只需在文件夹内使用要重命名的文件运行它(双击)? – user2600242

+0

当然。将我更新后的答案中的代码放到.vbs文件中,将其复制到您的文件夹并双击它。请注意,此代码对于存在临时名称的文件已存在的情况没有保护措施! –

+0

这不起作用。 – user2600242

2

在批处理:

@ECHO OFF 
SETLOCAL 
FOR %%n IN (*) DO ECHO "%%n"|FINDSTR /L "! ^" >nul&IF ERRORLEVEL 1 (
SET "name=%%~nxn" 
SETLOCAL enabledelayedexpansion 
FOR %%a IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
) DO SET "name=!name:%%a=%%a!" 
ECHO REN "%%~fn" "!name!" 
endlocal 
) 

GOTO :EOF 

注:不会重新命名包含!^名称。 REN命令只是ECHO编。在REN之前删除ECHO关键字以实际重命名。

+0

我将此脚本保存在记事本中,然后将其重命名为.bat文件...将其重命名为具有要重命名文件的文件夹,但无效。 – user2600242

+0

虽然这只适用于ASCII文件名称。我猜你可以使用'||'而不是'&errorlevel 1',这样可以让眼睛更容易一些。 – Joey

+0

这不起作用。 – user2600242

相关问题