使用变量源名称的 Powershell 复制项
Powershell copy-item using variable source names
我是 PowerShell 的新手,仍在尝试解决问题。我有一个脚本可以成功地将文件从一个位置复制到另一个位置:
Copy-Item \ServerName01\FolderName\file_09022020_0030.txt
-Destination \ServerName02\FolderName\file_copied.txt
如何编写脚本以使用可变源文件名?我想用一个变量找到今天减7天的日期并抓取相应的文件。
例如:
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.
另请参阅:
我是 PowerShell 的新手,仍在尝试解决问题。我有一个脚本可以成功地将文件从一个位置复制到另一个位置:
Copy-Item \ServerName01\FolderName\file_09022020_0030.txt
-Destination \ServerName02\FolderName\file_copied.txt
如何编写脚本以使用可变源文件名?我想用一个变量找到今天减7天的日期并抓取相应的文件。
例如:
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.
另请参阅: