数据来源 $urldata 中的倒数第2列(子文件夹名称列)包含 /、\ 等特殊字符

某个文件夹重命名脚本


foreach ($i in 0..100) {
# 提取路径部分
$basePath = ($urldata[$i].split("`t")[-1]).trim()
$subPath = ($urldata[$i].split("`t")[-2].replace('"', '')).trim() # 组合完整路径
$fullPath = "$basePath/$subPath" # 替换字符以生成重命名路径
$renamePath = $subPath -replace '/', '__' -replace '\\', '_、' -replace ':', '_:'
$renamePath = "$basePath/$renamePath"
if ($fullPath -eq $renamePath) {continue}
if (Test-Path $fullPath) {
# 创建文件夹
New-Item -Path $renamePath -ItemType Directory -Force # 确保目录存在 # 移动文件
Move-Item "$fullPath/*" -Destination $renamePath -Force # 确保强制移动 # 删除原文件夹
Remove-Item -Path $fullPath -Recurse -Force # 确保递归删除 # 输出重命名路径以供检查
Write-Host "Rename Path: $renamePath, del Path: $fullPath"
} else { $oldPath="Y:/$($renamePath.replace('__','_'))"
$newPath="Y:/$renamePath"
if(Test-Path $oldPath){ rename-item $oldPath $newPath } Write-Host "Path does not exist: $fullPath, 修改文件夹 $oldPath 为 $newPath" # 如果路径不存在,输出提示
}
}

递归查找当前文件夹下的子文件夹,

Get-ChildItem -Recurse | Where-Object { $_.psiscontainer -and ($_.GetFileSystemInfos().Count -eq 0) } | ForEach-Object { Remove-Item $_;Write-Host "文件夹 $_ 已删除" }

PS, 对 PowerShell 中的 Get-ChildItem 帮助的理解感到有些疑惑。

`Get-ChildItem` doesn't display empty directories. When a `Get-ChildItem` command includes the Depth or
Recurse parameters, empty directories aren't included in the output.

延申阅读

PowerShell 重命名文件夹及删除空文件夹的更多相关文章

  1. linux下文件夹的创建、复制、剪切、重命名、清空和删除命令

    在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinozzz 一.目录创建 在/home/wwwroot目录下新建一个sinozzz123的 ...

  2. Linux下文件重命名、创建、删除、修改及保存文件

    一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. ...

  3. shell脚本递归删除空文件夹

    有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的脚本,于是自己动手写了一个 脚本 #!/bin/bash # author: 十年后的卢哥哥(http://www.cnblogs.com/ ...

  4. Python删除文件,空文件夹,非空文件夹

    首先,在Python中文件路径是这种格式: file_path1 = r'F:\test\1' 删除文件,命令 os.remove(file_path1) 删除空文件夹,命令 os.rmdir(fil ...

  5. python 递归删除空文件夹

    Python如何递归删除空文件夹 1.Python如何递归删除空文件夹,这个问题很常见.但大多数人的解决办法都是自己实现递归函数解决这个问题,其实根本不用那么麻烦.Python中的os.walk提供了 ...

  6. 删除指定路径下固定格式,以.log结尾、三天前的文件,或删除空的日志文件

    师出‘百测’besttest 删除指定路径下固定格式,以.log结尾.三天前的文件,或删除空的日志文件. 日志文件格式:XXXX_2019-01-01.log. import os,datetime ...

  7. 应用程序启动后修改自身EXE文件或自删除EXE文件(附VC++6.0源码)

    在CSDN论坛看到这么一个问题:如何为第三方工具加上使用限制次数?问题的答案很简单,重新做一个应用程序,将第三方程序打包进这个应用程序,启动应用程序时可以检查第三方工具的使用次数,检查通过,可运行第三 ...

  8. linux批量压缩当前目录中文件后,删除原文件

    linux批量压缩当前目录中文件后,删除原文件 for i in `ls|awk -F " " '{print $NF}'`; do tar -zcvf $i.tar.gz $i ...

  9. Python之文件处理-递归删除特定文件

    Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...

  10. linux重命名所有find查找到的文件/文件夹

    一.说明 在某些时候我们想要将所有find命令查找到的文件或文件夹全都重命名,比如都加上.bak后辍 二.操作命令 find /dir -name "*pattern*" -exe ...

随机推荐

  1. 上架难、买量贵?即构 Web 端 1v1 方案全力加速泛娱乐出海

    1v1 视频社交以其功能简洁.互动性强.匹配效率高等特点,在陌生人社交玩法中饱受用户欢迎,平台仅需让两个用户通过匹配.选择等形式连通后,用户即可在房内进行 1v1 视频社交,且在社交的同时又极具私密性 ...

  2. LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解

    题目:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 . 算法的时间复杂度应该为 O(log (m+n)) . 作为目前遇到 ...

  3. 2024 IDEA开发者部署lilishop的manager模块(详尽版)

    一.环境整合 构建工具(参考工具部署方式) 软件名称 版本 相关文章推荐 Git 13.5.0 https://www.cnblogs.com/liuyangfirst/p/15996063.html ...

  4. 自定义 AuthenticationProvider ,UserDetailsService的实现类@Autowired 为null

    项目场景: 整合spring security OAuth2自定义AuthenticationProvider 登录认证 签发token 问题描述: 在自定义 AuthenticationProvid ...

  5. 采集数据产品描述有超链接///设置免运费后,达到免送标准,其他运费不显示///给产品详情页面的图片点击放大是个模态窗///在shop页面有重复的产品展示,去重

    //产品描述有超链接,去掉 function remove_product_hyperlinks($content) { if (is_product()) { // 确保只在产品页面上应用 $con ...

  6. 如何理解 .Net 中的 委托

    // 委托 // 一种方法的声明和定义,也就是方法的占位符 // 一般使用在 参数 和 属性中 int Add(int a,int b) { return a + b; } // 定义委托的三种方法 ...

  7. 形参和实参的区别 and 联系

    联系:形参和实参是赋值关系,是按照值传递的,简单数据直接传递值,形参和实参的改变互不影响,因为形参和实参是两个变量,是两个数据(栈内存): 引用数据传递的是地址,结果就是一个数据,两个地址同时指向一个 ...

  8. Idea启动多服务时的Dashboard展示

    1.提换.idea/workspace.xml文件中的RunDashboard标签 <component name="RunDashboard"> <option ...

  9. 更改后端的数据格式适配el-tree组织树

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  10. 云原生周刊:Docker 推出 Docker Debug | 2023.10.9

    开源项目推荐 SchemaHero SchemaHero 是一个 Kubernetes Operator,用于各种数据库的声明式架构管理.SchemaHero 有以下目标: 数据库表模式可以表示为可以 ...