如何解决使用可变源名称的Powershell复制项目
我是PowerShell的新手,仍然在尝试解决问题。我有一个脚本可以成功地将文件从一个位置复制到另一个位置:
copy-Item \\ServerName01\FolderName\file_09022020_0030.txt
-Destination \\ServerName02\FolderName\file_copied.txt
如何编写脚本以使用可变的源文件名?我想使用一个变量来查找今天的日期减去7天并获取相应的文件。
EX:
copy-Item \ServerName01\FolderName\file_[variable today minus 7]*.txt
-Destination \ServerName02\FolderName\file_copied.txt
可变日期应采用MMDDYYYY格式。每个文件末尾的时间戳都可以忽略,所以我猜这是一个通配符(*)
file_09022020_0030.txt
file_09012020_0030.txt
file_08312020_0305.txt
...
file_08262020_0451.txt
file_08252020_0305.txt
file_08242020_0305.txt
解决方法
# Get a string representing 7 days ago in the specified format
# and store it in variable $dt
$dt = (Get-Date).AddDays(-7).ToString('MMddyyyy')
# Use variable $dt in the source file path pattern.
Copy-Item -Path \\ServerName01\FolderName\file_${dt}_*.txt `
-Destination \\ServerName02\FolderName\file_copied.txt
请注意变量名{...}
周围的dt
,如果_
是变量名中的有效字符,则必须告知PowerShell变量名在何处结束。
也就是说,并不需要严格的中间变量,因此您可以直接嵌入
而不是${dt}
通过$((Get-Date).AddDays(-7).ToString('MMddyyyy'))
,subexpression operator在源路径中$()
。
另请参阅:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。