Powershell Copy脚本,在复制前检查File

时间:2011-11-16 08:52:34

标签: powershell

我想知道如何创建一个powershell脚本来从另一个位置复制文件。

在开始复制之前,需要脚本检查文件名。

文件名采用当前日期格式(swddmmyyy),例如sw16 / 11/2011。这个文件名每天都在变化,所以明天它将是sw17112011。

因此,当脚本运行时,它会在复制文件夹中的内容之前检查文件名是否与当前日期匹配。该文件与需要复制的内容位于同一文件夹中。

$date = (get-date).adddays(0).ToString("ddMMyyyy") 
$filter = "sw_$date" 
$file = "c:\scripts\$filter" 
$check = test-path $file 
$script = $check -eq $true 
If ($script) {Get-ChildItem C:\scripts*.csv | Copy-Item -destination c:\test}

提前致谢

2 个答案:

答案 0 :(得分:0)

为此目的更好地使用robocopy:http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx

对您尝试的脚本的评论:

(get-date).adddays(0).ToString("ddMMyyyy") - 你为什么要加0天?只需使用

(get-date).tostring("ddMMyyyy")

你可以删除$ check,$ script等,然后执行:

If (test-path $file) {Get-ChildItem C:\scripts*.csv | Copy-Item -destination c:\test}

答案 1 :(得分:0)

哟回答我自己的问题,我使用了以下解决方案。

$date = (get-date).ToString("ddMMyyyy")

$filter = "sw_$date"

$file = "c:\scripts\$filter"

If (test-path $file) 

{robocopy c:\scripts c:\test *.csv /xo}

有没有人有任何建议如何循环这样重试if(test-path $ file eq false)?