将文件夹中的文件名从大写转换为小写(Windows命令提示符或PowerShell)

时间:2013-07-19 16:34:45

标签: windows vb.net powershell command command-prompt

我在一个文件夹中有大约600个文件,我需要将其从小写转换为大写。我无法在我的机器上安装任何应用程序,因为我们的IT不允许它,因此,我要么必须在PowerShell,CMD或者VB中进行。

示例文件:

dog_123.csv需要转换为DOG_123.csv

提前致谢。

3 个答案:

答案 0 :(得分:6)

在PowerShell中:

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

或更短:

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

答案 1 :(得分: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 ed。在ECHO之前删除REN关键字以实际重命名。

答案 2 :(得分: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不区分大小写,否则会抱怨该文件已存在。