如何修改此 PowerShell 脚本以将目录名称更改为更低?

2024-04-25

我试图将所有文件和目录重命名为 lower,我在这里找到了一个 powershell 脚本:在 Powershell 中将文件重命名为小写 https://stackoverflow.com/questions/3822745/rename-files-to-lowercase-in-powershell

我最喜欢的答案如下,因为它是最干净、最简洁的答案。但是,它不包括目录名称,而且我还没有足够的代表来回复评论

Get-ChildItem -r | Where-Object { !$_.PSIsContainer } | Rename-Item -NewName { $_.FullName.ToLower() }

我不了解 PowerShell,也不打算精通,请跳过所有细节我只是在寻找代码来将我的所有文件和目录重命名为 lower,我不需要知道它是如何工作的。我不喜欢下面的解决方案,因为1,它太冗长了,2,它只处理目录名而不处理文件名。

Where-Object { $_.PSIsContainer -And $_.Name -CMatch "[A-Z]" } |
ForEach-Object {
    $NName = $_.Name.ToLowerInvariant()

    # Set temporary name to enable rename to the same name; Windows is not case sensitive
    $TempItem = Rename-Item -Path $_.FullName -NewName "x$NName" -PassThru

    Rename-Item -Path $TempItem.FullName -NewName $NName
}

我想要一个干净的命令来重命名文件和目录,类似于第一个示例,请


当我第一次写这篇文章时,我只想打开 powershell 并粘贴命令。事后看来,这也不是最有效的方式。所以我最终将每个脚本(一个用于文件,一个用于文件夹)保存到一个 .ps1 文件中,您将其放入您想要降低的任何目录中,然后右键单击并“使用 powershell 运行”,它将重命名所有文件和子目录

该脚本如下所示:

# files to lower
Get-ChildItem -r | Where-Object { !$_.PSIsContainer } |
Rename-Item -NewName { $_.FullName.ToLower() }

# folders to lower
$fso = New-Object -ComObject Scripting.FileSystemObject
Get-ChildItem . -rec -dir |
ForEach-Object { $fso.MoveFolder($_.fullname, $_.Fullname.ToLower()) }

正如您在提供的代码中提到的,Windows 不是区分大小写的操作系统,因此您需要将目录重命名为临时名称(例如在降低字符后插入一个字符),然后再次重命名(通过删除插入的字符)

我修改了你的行如下,以便能够降低目录和文件,请尝试一下

Get-ChildItem -r  | Rename-Item -NewName { $_.Name.ToLower().Insert(0,'_') } -PassThru |  Rename-Item -NewName { $_.Name.Substring(1) }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修改此 PowerShell 脚本以将目录名称更改为更低? 的相关文章

随机推荐

  • 为什么在 jQuery 中调用函数需要包装在方法中?

    假设我有一个函数 function myFunction 我想从事件处理程序中调用它 为什么这个结构不调用我的函数 window resize myFunction 但这确实有效 window resize function myFunct
  • 带有 OAuth 访问令牌的 GitHub 克隆

    在脚本中 我尝试使用 OAuth 令牌克隆 GitHub 存储库 根据本教程 https github com blog 1270 easier builds and deployments using git over https and
  • Node.js |如何通过串口向设备发送和接收一个字节?

    我正在尝试编写使用以下方法的 Node js 脚本serialport https serialport io 用于读取和写入数据的 npm 包COM5串行端口 使用 RS 232 电缆连接到设备 该设备会自动传输其拥有的数据 要检索设备内
  • PHP:如何使浏览器点击下载文件

    PHP 初学者 文件上传成功 但我的浏览器不下载文件 而是读取文件 所以我参考了其他线程并发现下面的代码不起作用 我想在单击超链接时下载文件download 从MySQL数据库中选择路径 rows mysqli num rows resul
  • gcc 4.4.5 中未定义 _GLIBCXX_ATOMIC_BUILTINS

    我有一些正在移植的代码 并且我已经找到了丢失的错误 宏 GLIBCXX ATOMIC BUILTINS 后来的gcc版本没有定义这个吗 解决这个问题的正确方法是什么 在该版本中 您还需要检查某些特定数据类型的原子宏 因此您可以执行以下操作
  • .NET 应用程序无法启动和接收 XamlParseException

    我编写了一个可以在我的开发 PC Windows 7 上安装和运行的应用程序 开发环境 Window 7 VS2010 WPF C 两者都有 NET 4 and NET 3 5已安装 在其他客户端计算机 XP SP3 2和1 上 安装没有错
  • 我在 Joda-Time 中得到两个日期之间的时间错误

    无论我做什么 我都会得到不正确的结果 谁能给我一些建议吗 这是我的程序的代码 负责获取两个日期之间的时间 我得到了结果 但问题是它不正确 并且我无法找到问题 我的项目中有 Joda 库 if timerightnow isSelected
  • iOS - 管理 IBOutlet 内存的最佳方法是什么?

    我一直在查看 Apple 文档和示例代码 试图确定管理 IBOutlet 内存的最佳方法 至少可以说 我有点困惑 CurrentAddress 示例代码将 IBOutlets 声明为属性 interface MapViewControlle
  • 如何为 iOS 构建 PoDoFo 库

    这可能是这个问题的副本如何在 iOS 上使用 PoDoFo 库对 PDF 进行注释 https stackoverflow com questions 7643771 how can i use the podofo library for
  • 调试时的监视窗口:CS0103:当前上下文中不存在名称“

    我正在使用 Visual Studio Community 2022 64 bit Version 17 4 2 with NET Framework Version 4 8 09032 昨天 2022 年 2 月 12 日有更新 我是通过
  • pictureBox 图片处理异常

    我最近想尝试一下锻造网 http www aforgenet com framework 因为我发现它非常简单 所以我决定使用 Video FFMPEG 命名空间进行一些简单的视频播放 这样我就可以将每个帧直接放在 pictureBox 上
  • Android中线程加载的Web图像

    我在 ListActivity 中有一个扩展的 BaseAdapter private static class RequestAdapter extends BaseAdapter 以及其中定义的一些处理程序和可运行对象 Need han
  • Javascript var 提升问题

    我有一个非常简单的 Javascript 函数 它可以访问 MS SQL 服务器并返回一些记录 有一个单元格 我只想在它唯一时才显示在顶部表格行中 我相信我的问题是 var 提升 因为我在 while 循环中分配的变量不起作用 因为该值不是
  • OS X 应用程序图标和菜单栏图标的图标大小

    OS X 的应用程序图标和菜单栏图标应该有多大 我可以处理小分辨率显示屏 但 Retina 显示屏怎么样 在配备 Retina 显示屏的新 MacBook Pro 上 菜单栏上显示的图标 例如 20 x 20 是否会更小或模糊 我认为应用程
  • UITextView不会设置文本

    我在 UITextView 中设置文本时遇到问题 我的 textView 连接到我的 StoryBoard 我控制拖动来创建我的出口 import UIKit class ViewController UIViewController UI
  • 如何从 JavaScript 使用 Opus 编解码器

    我想看看是否可以使用直接访问 OpusgetUserMedia或最新浏览器中的任何类似内容 我对此进行了很多研究 但没有取得好的结果 我知道 Opus 或 Speex 实际上用于webkitSpeechRecognitionAPI 我想做语
  • HTML5 日期选择器不显示在 Safari 上

    之前使用过 jQuery 日期选择器 现在我已将网站表单中的一些日期字段转换为 HTML5 日期选择器 在文档中 它说支持 Safari 但是 它目前仅显示一个文本字段 而 Chrome 和其他浏览器可以正确显示日期选择器 echo
  • swift 4.0:覆盖“prepare”必须与其覆盖的声明一样可用

    我试图将 Apple 的 ARKit 示例应用程序集成到我的应用程序中 由于ARKit只是一个附加功能 所以我需要支持较低版本的iOS 我向所有 ARKit 示例应用程序类添加了 available iOS 11 0 标签 它几乎可以工作
  • 如何使用 scrapy 合约?

    Scrapy 合约问题 我开始研究 scrapy 框架 也实现了一些蜘蛛 提取 但我无法为蜘蛛编写单元测试用例 因为合同 scrapy提供的包文档没有正确的程序来编写 测试用例 请帮我解决这件事 Yes 蜘蛛合约 http doc scra
  • 如何修改此 PowerShell 脚本以将目录名称更改为更低?

    我试图将所有文件和目录重命名为 lower 我在这里找到了一个 powershell 脚本 在 Powershell 中将文件重命名为小写 https stackoverflow com questions 3822745 rename f