[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] (已解决)怎么把文件夹名的每个单词首字母都大写?

本帖最后由 itunesis 于 2020-2-5 19:40 编辑

大家好!

我想让现在的文件名中的单词每个首字母变成大写,单词是按空格或者 - 号作为分隔的。

这个bat能搞得定吗?

  1. <#*,:&cls
  2. @echo off
  3. pushd "%~dp0"
  4. powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~0\" -ReadCount 0 | Out-String ))) "
  5. popd
  6. pause
  7. exit /b
  8. #>
  9. # 我想让目录下的文件/文件夹(包含子文件夹)的全部文件和文件夹的名称全部改成 首字母大写单词-Capital Word
  10. Get-ChildItem -Path . -Filter * -Recurse | ForEach-Object -Begin {
  11.   $re = [regex]'(?i)[a-z]+'
  12.   $evaluator = [System.Text.RegularExpressions.MatchEvaluator] {
  13.     param($m)
  14.     $s = $m.Value.ToLower()
  15.     return $s.Substring(0, 1).ToUpper() + $s.Substring(1)
  16.   }
  17. } -Process {
  18.   $newName = $re.Replace($_.BaseName, $evaluator)
  19.   if ($newName -cne $_.BaseName) {
  20.     # Rename-Item -Path ($_.FullName -replace '[\[\]]', '`$&') -NewName $newName
  21.     # $_.MoveTo($newName)
  22.     cmd.exe /c "ren `"$($_.FullName)`" `"$newName$($_.Extension)`""
  23.   }
  24. }
复制代码
微信:flashercs
QQ:49908356

TOP

回复 2# flashercs


    谢谢了,成功了

TOP

回复 2# flashercs


    老哥,用了几次发现有几个问题。
原来单词如果是大写的,运行后其他大写字母会换成小写,

首字母大写的单词没有完全以空格符号或者-号符号来识别的。



我想只把空格 符号或者-号符号这两个字符后面单词的首字母变成大写
比如单词abc123abc  首字母大写格式应该是Abc123abc
    单词abc123-abc 首字母大写格式应该是Abc123-Abc

如果一串字母中没有空格符号或者-符号那就当作是一个单词,
比如单词you're     首字母大写格式应该是You're而不是You'Re

如果原来单词首字母就是大写的,就保持这个单词不变,不作改动。
比如原单词是ABC,首字母不需要更改了,那就保持单词ABC不改动

这样描述不知道老哥能不能看的明白,简单说就是每个单词首字母大写,
每个单词都是用空格符号或者-符号间隔开的,只有这两个符号后面的单词首字母才需要大写。
附上图片给老哥看看。

TOP

回复 4# itunesis
  1. <#*,:&cls
  2. @echo off
  3. pushd "%~dp0"
  4. powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~0\" -ReadCount 0 | Out-String ))) "
  5. popd
  6. pause
  7. exit /b
  8. #>
  9. # 我想让目录下的文件/文件夹(包含子文件夹)的全部文件和文件夹的名称全部改成 首字母大写单词-Capital Word
  10. Get-ChildItem -Path . -Filter * -Recurse | ForEach-Object -Begin {
  11.   $re = [regex]'(?<=[- ]|^)[a-z]'
  12.   $evaluator = [System.Text.RegularExpressions.MatchEvaluator] {
  13.     param($m)
  14.     return $m.Value.ToUpper()
  15.   }
  16. } -Process {
  17.   $newName = $re.Replace($_.BaseName, $evaluator)
  18.   if ($newName -cne $_.BaseName) {
  19.     # Rename-Item -Path ($_.FullName -replace '[\[\]]', '`$&') -NewName $newName
  20.     # $_.MoveTo($newName)
  21.     cmd.exe /c "ren `"$($_.FullName)`" `"$newName$($_.Extension)`""
  22.   }
  23. }
复制代码
微信:flashercs
QQ:49908356

TOP

回复 5# flashercs

真厉害

TOP

批量修改文件名工具(BulkRenameUtility)v2.7.1.3绿色中文版
这个好像也可以做到。大小写有四个选择:大写、小写、标题、句子。

TOP

回复 5# flashercs


    谢谢

TOP

返回列表