powershell - 如何将文件夹中的所有文件复制到另一个文件夹并更改扩展名?
问题描述
我在一个没有扩展文件的文件夹中有一些文件。我想将所有文件复制到另一个文件夹并将其扩展名更改为.txt
.
我尝试了这段代码,但创建目标文件仍然出错。
$JOB = Copy-Item -Path C:\Users\XX\Documents\Folder1* -Destination "C:\Users\XX\Documents\Folder2"
Rename-Item -Path C:\Users\XX\Documents\Folder2\* -NewName *.TXT
解决方案
Get-ChildItem -Path .\Folder1 -File |
ForEach-Object { Copy-Item -Path $_.FullName -Destination ".\Folder2\$($_.BaseName).txt" }
# Alternatively without ForEach-Object (see note below)
Get-ChildItem -Path .\Folder1 -File |
Copy-Item -Path $_.FullName -Destination { ".\Folder2\$($_.BaseName).txt" }
那应该做的工作。请记住,它仅适用于一级,如果您想要文件夹结构的递归副本,则必须稍微修改脚本。
基本上,这里发生的事情是您找到所有文件,然后将它们通过管道传输到具有源文件属性的Copy-Item
目标路径BaseName
(与属性相比,它不包含扩展名Name
)。
注意:因为-Path
接受管道输入(请参阅此处的文档),您不需要使用ForEach-Object
. 但是,它对于可见性可能仍然有用(取决于您的偏好)。
感谢@LotPings注意到上述内容。
推荐阅读
- docker - Spotify docker 客户端:如何获取已启动容器的标准输出和标准错误?
- ios - Swift本地化StringWithFormat数字输出而不是Text
- html - 如何在 css hack/媒体查询中扩展 Internet Explorer?
- r - 如何使用 Sjplot 更改 facet_grid 和点估计的形状?
- python - 安装后没有 Anaconda Navigator (Windows 10)
- docker - VSCode 远程容器 - 未使用 docker-compose 在开发容器上安装扩展
- pipenv - 使用多个 Pipfile 支持 python2 & python3
- html - 如何从 django 模板中获取视图中的外键?
- php - 通过标签名称获取 xml 元素
- javascript - 将参数传递给生成器函数