【发布时间】:2018-12-18 11:21:52
【问题描述】:
我对 Powershell 比较陌生,并且对我收到的错误有疑问。浏览堆栈溢出后,我发现用户在拼写等方面犯了错误,因此我没有找到适合我的问题的答案。
我有一个脚本运行一些数据的备份并将其压缩并将其存储为:
yyyyMMddsometext.7z
我有另一个脚本来获取最新备份(如果已创建)并将其复制到另一个位置
我收到一个错误
复制项无法将参数绑定到参数“路径”,因为它为空
这是否意味着该文件不存在或者是以下任何一个错误?
$c = $textBox.Text
$a = (Get-Date).AddDays(-1).ToString($c)
$b = Get-ChildItem "C:\BackupsRP1" -Filter *.7z | Where-Object BaseName -like "*$a*"
Copy-Item $b -Destination "C:\Users\user\Desktop"
上面的代码是一个简单的 GUI,用户可以输入格式为 yyyyMMdd 的日期,它会比用户输入的文件少一天的时间找到文件并将其复制到该位置。
谢谢你, J
【问题讨论】:
-
错误指出
$b不包含任何值。这可能是因为您的过滤器没有找到匹配的文件,或者是因为该文件不存在或过滤器错误。将$a写入控制台并确保文件名正确。 -
@Paxz 感谢您的澄清。如果文件所在的位置可以在周一到周日的任意数量的文件夹中,它是否仍会找到该文件(如果存在)并复制它?还是我需要指定在每个文件夹中搜索?
-
$c的值是多少? -
$c 是格式为 yyyyMMdd 的用户输入日期,因为我正在查找的文件每天都会备份,我们需要获取指定日期前一天备份的文件。因此会弹出一个 GUI,说“以 yyyyMMdd 格式输入日期”,并将其插入值 $c @marsze
-
@jasony4 我猜应该没问题。
标签: powershell