powershell - 如何使用 Powershell 重命名
问题描述
如何使用PowerShell重命名Windows中的一堆文件。文件名示例:
Image001 L@ter
Image002 L@ter
我试过这两个命令,
get-childitem * | ForEach { Move-Item -LiteralPath $_.name $_.name.Replace("L@ter","")}
get-childitem * | ForEach { rename-item $_ $_.Name.Replace("L@ter","") }
我希望输出为 Image001,Image002
解决方案
首先,关于您的命令的一些小细节:
get-childitem * | ForEach { Move-Item -LiteralPath $_.name $_.name.Replace("L@ter","")}
LiteralPath旨在完全按照键入的方式使用。所以我会用它
$ .FullName而不是$ .name如果我必须使用奇怪的路径(如网络共享)。
第二:在move-item和rename-item的 get-help 中,我可以看到-path参数:
Required? true
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName, ByValue)
这意味着我们可以通过管道将对象集合导入其中,并且 rename cmdlet 将自动通过该集合:
Get-ChildItem -Path 'c:\tests\' -File -Recurse | Rename-Item -NewName ($_.name -replace ' l@ter') -Force -WhatIf
对于 Drew 和 Js2010 的回复,我已经使这个回复变得多余,但是,由于我是 powershell 的初学者,我发现使用完整的命令更容易理解答案。
推荐阅读
- python - Pandas/Numpy:删除 pandas 系列或 numpy 数组中的前导/尾随 nan
- c# - 为什么添加 Microsoft.CodeAnalysis.NetAnalyzers 时 TFS 2015 SP3 构建代理会失败?
- android-studio - Android Studio SDK 30 (2021) webview 如何使文件输入提示用户画廊、照片或视频并实际上传
- d3.js - 在 D3 sankey 图中更改节点颜色
- java - Java - 地图
> 遍历列表并跳过前 N 个条目 - pos-tagger - POS/NER 能够区分在多个上下文中使用的同一个词吗?
- php - 如何反序列化,然后将生成的多维数组转换为纯文本,去掉代码?
- azure - 将 Azure Sql 数据库限制为只能从不同区域的某些 Azure 应用服务访问
- python - 如何在 Pandas 中更改 MultiIndex 数据框列中某些行的值
- python - 使用 PySimpleGUI 时如何启用并响应最大化按钮