powershell - 如何一次删除多个文件名中下划线之前的所有字符?
问题描述
我在一个文件夹中有很多文件,如下所示:
test_123.txt
testing_456.txt
再次测试_789.txt
如何一次删除所有文件名之前的所有字符(包括下划线)?我有大约 2500 个需要截断的文件,但如果可能的话,我想在命令提示符或 powershell 中进行截断。
我希望它们看起来像这样:
123.txt
456.txt
789.txt
解决方案
以下是你的做法。
$Files = Get-ChildItem -Path 'Path\To\Folder' -File
foreach ($File in $Files) {
$Split = $File.Name -split '_'
if ($Split.Count -gt 1) {
Rename-Item -Path $File.FullName -NewName $Split[1]
}
}
请注意,如果您有名称冲突(例如:Hello_123.txt、World_123.txt),将会有例外,但由于您提到数字是唯一的,这应该可以解决问题
推荐阅读
- node.js - 角 | 块资产优化
- java - 我应该将我的实体 ID 放在 URL 中还是作为隐藏字段放入表单中?
- python - 从哪里我可以将字段输入插入到odoo数据库
- java - Gradle构建成功但出现运行时错误错误:无法确定任务':app:compileDebugJavaWithJavac'的依赖关系
- pojo - ModelMapper mapper.skip() 不适用于具有循环依赖的 pojo 对象
- c# - 将接口方法作为参数传递
- c - 双向链表不起作用
- javascript - JavaScript、构造函数和“this”
- javascript - Javascript检查是否设置了位
- uwp - 如何从存储在资源字典中的“Canvas”中设置“BitmapIcon”或“PathIcon”内容?