PowerShell 重命名文件夹及删除空文件夹
数据来源 $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 重命名文件夹及删除空文件夹的更多相关文章
- linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinozzz 一.目录创建 在/home/wwwroot目录下新建一个sinozzz123的 ...
- Linux下文件重命名、创建、删除、修改及保存文件
一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. ...
- shell脚本递归删除空文件夹
有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的脚本,于是自己动手写了一个 脚本 #!/bin/bash # author: 十年后的卢哥哥(http://www.cnblogs.com/ ...
- Python删除文件,空文件夹,非空文件夹
首先,在Python中文件路径是这种格式: file_path1 = r'F:\test\1' 删除文件,命令 os.remove(file_path1) 删除空文件夹,命令 os.rmdir(fil ...
- python 递归删除空文件夹
Python如何递归删除空文件夹 1.Python如何递归删除空文件夹,这个问题很常见.但大多数人的解决办法都是自己实现递归函数解决这个问题,其实根本不用那么麻烦.Python中的os.walk提供了 ...
- 删除指定路径下固定格式,以.log结尾、三天前的文件,或删除空的日志文件
师出‘百测’besttest 删除指定路径下固定格式,以.log结尾.三天前的文件,或删除空的日志文件. 日志文件格式:XXXX_2019-01-01.log. import os,datetime ...
- 应用程序启动后修改自身EXE文件或自删除EXE文件(附VC++6.0源码)
在CSDN论坛看到这么一个问题:如何为第三方工具加上使用限制次数?问题的答案很简单,重新做一个应用程序,将第三方程序打包进这个应用程序,启动应用程序时可以检查第三方工具的使用次数,检查通过,可运行第三 ...
- linux批量压缩当前目录中文件后,删除原文件
linux批量压缩当前目录中文件后,删除原文件 for i in `ls|awk -F " " '{print $NF}'`; do tar -zcvf $i.tar.gz $i ...
- Python之文件处理-递归删除特定文件
Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...
- linux重命名所有find查找到的文件/文件夹
一.说明 在某些时候我们想要将所有find命令查找到的文件或文件夹全都重命名,比如都加上.bak后辍 二.操作命令 find /dir -name "*pattern*" -exe ...
随机推荐
- vue 中 elementUI el-table 实现滚动加载
vue 中 elementUI el-table 实现滚动加载 一.需求 vue 中 elementUI el-table 实现滚动加载,场景:当表格需要显示大量数据时,又想通过一页来进行展示数据. ...
- BOM – Cookie 和 LocalStorage
前言 Cookie 和 LocalStorage 是非常基础的东西. 我是学编程后, 第 3 年才开始写博客的, 所以很多在第 1, 2 年学的知识完全都没有记入下来. (比如 C#, JS 语法等等 ...
- RxJS 系列 – Filtering Operators
前言 介绍完 RxJS 两大概念 Observable 和 Subject 之后, 篇幅最大的就是各种 Operators 了. 这篇先介绍比较简单的 Filter Operators. 请先看完上面 ...
- HTML & CSS – Responsive Image 响应式图片 (完整版)
前言 之前就有写过关于 Retina 和 Responsive Image 响应式图片 (responsive image) Retina 显示屏 但写的太烂了, 所以有了后来的 屏幕, 打印, 分辨 ...
- 图解YUV420、YUV420(YUY2)、YUV422(YVYU)
Y:亮度分量 UV:色度分量 1. 标准yuv指的是yuv420 一般看文章,会出现下面的公式,但不涉及具体的yuv格式,其实这一定指的是yuv420 Y与RGB的演算关系为:Y = 0.21 ...
- 第147天:免杀对抗-C2远控篇&C&C++&ShellCode定性分析&生成提取&Loader加载模式&编译执行
https://blog.csdn.net/qq_29948489/article/details/136180966 #C2远控-ShellCode-认知&环境 1.创建工程时关闭SDL检查 ...
- /proc/pids/limits
cat /proc/39977/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Ma ...
- 利用3Dslice提取血管中心线
1.首先进入官网下载你需要的版本.你也可以安装老版本,我已经用红色框框出来了. 2.开始安装,等个几十秒钟就ok了. 3.当然要实现提取中心线,还需要 VMTK 这个玩意, 打开应用,找到 insta ...
- 什么是SPA页面,它的优缺点?
什么是SPA spa是单页面应用(single page web application),浏览器会一开始就加载所需要的html.css.javascript.一旦页面加载完毕,整个页面就不会因为用户 ...
- 使用doccano标注NER数据详细教程
使用doccano标注NER数据详细教程 说明: 首次发表日期:2024-10-12 参考资料: https://github.com/zjunlp/DeepKE/blob/main/README_T ...