Can';无法在Powershell中复制该文件

Can';无法在Powershell中复制该文件,powershell,Powershell,我写的小脚本,复制文件到特殊的文件夹。问题在于复制命令。我声称我使用了错误的语法进行复制 $files = dir -r -path "Z:\graphics\" -i *.* foreach ($file in $files) { copy -path $file Z:\SatData\graphics\LastDays\ } 我还想创建一个脚本来计算1天前创建的文件的大小。我试着做下一步: $today = Get-Date $now = $today.Day $now $la

我写的小脚本,复制文件到特殊的文件夹。问题在于复制命令。我声称我使用了错误的语法进行复制

$files = dir -r -path "Z:\graphics\" -i *.*

foreach ($file in $files)
{
    copy -path $file Z:\SatData\graphics\LastDays\
}
我还想创建一个脚本来计算1天前创建的文件的大小。我试着做下一步:

$today = Get-Date
$now = $today.Day
$now

$lastdays = $today.AddDays(-1)
$lastdays

$files = dir -r -path "Z:\graphics\" -i *.*

foreach ($file in $files) 
{
if ($file.CreationTime -eq $lastdays) # if file was create yesterday calculate it
    {
    $sum
    $sum = $sum + $file.length
    $sum/1MB

    $file.CreationTime

    }
else {}
}
脚本没有找到昨天创建的任何文件,我现在看到了任何输出。只有当设置为非-eq,而是-lt时才有效
但是昨天创建的文件存在于文件夹中

对于第一部分,请使用$file.FullName而不是$file。

对于第一部分,请使用$file.FullName而不是$file。

在复制语句中,您需要引用实际路径,因为
dir
正在返回一个fileinfo对象。例如:
copy-path$file.FullName Z:\SatData\graphics\LastDays\

问题的第二部分是日期,而不是日期。尝试类似于
$dayed=(get date).adddays(-1).date
的方法,并将比较更改为
if($file.CreationTime.date-eq$dayed)


您需要使用date属性,因为它将比较时间设置为00:00:00。如果不匹配,则永远不会匹配。

在复制语句中,您需要引用实际路径,因为
dir
正在返回一个fileinfo对象。例如:
copy-path$file.FullName Z:\SatData\graphics\LastDays\

问题的第二部分是日期,而不是日期。尝试类似于
$dayed=(get date).adddays(-1).date
的方法,并将比较更改为
if($file.CreationTime.date-eq$dayed)

您需要使用date属性,因为它将比较时间设置为00:00:00。如果你不这样做,你将永远无法匹配。

使用管道:

dir -r -path Z:\graphics | copy-item -dest Z:\SatData\graphics\LastDays
要计算文件大小(MB),请执行以下操作:

使用管道:

dir -r -path Z:\graphics | copy-item -dest Z:\SatData\graphics\LastDays
要计算文件大小(MB),请执行以下操作:


第一个对我有效,你能发布准确的错误消息吗?对我不起作用:(文本表示文件或其名称中存在语法错误当你将
-whatif
参数添加到复制命令时会发生什么情况?第一个对我有效,你能发布准确的错误消息吗?对我不起作用:(文本表示文件或其名称中存在语法错误当您将
-whatif
参数添加到您的复制命令时会发生什么情况?我尝试使用$fle.FullName执行此操作,但它现在可以工作。屏幕截图位于上方我尝试使用$fle.FullName执行此操作,但现在可以工作。屏幕截图位于Shay Levy上方,您的第二个示例do现在开始工作它是blaim可以评估-eqlooks就像我丢失了一个括号一样,现在更新它。Shay Levy,你的第二个例子现在开始工作它是blaim可以评估-eqlooks就像我丢失了一个括号一样,现在更新它。