我想知道如何创建一个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}
提前致谢
答案 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)?