创建和复制目录时出现权限问题

时间:2010-07-21 10:01:10

标签: powershell

我创建了一个PowerShell脚本,用于将文件复制到目录,脚本,首先创建一个文件夹,或强制新文件夹事件(如果存在)。然后从另一个位置复制目录。复制后,我需要根据执行脚本的用户给出的值复制正确的Web配置文件。我遇到的问题是我可以复制文件,但所有文件都设置为只读,这意味着当我尝试复制正确的web.config时,脚本会因访问被拒绝而失败。

为简单起见,这是脚本的简化版本。

$WebApp_Root = 'C:\Documents and Settings\user\Desktop\Dummy.Website'

$Preview_WebApp_Root = 'c:\applications\Preview\'

$Choice = read-host("enter 'preview' to deploy to preview, enter Dummy to deploy to Dummy, or enter test to deploy to the test environment")
if (($Choice -eq 'Preview') -or ($Choice -eq 'preview'))
{
$Choice = 'Preview'
$Final_WebApp_Root  = $Preview_WebApp_Root
}

write-host("Releasing Build to " + $Choice +'...')

write-host("Emptying web folders or creating them if they don't exist... ")
New-Item $Final_WebApp_Root -type directory -force 

write-host("Copying Files... ")
Copy-Item $WebApp_Root $Final_WebApp_Root -recurse  

write-host("Copy the correct config file over the top of the dev web config...")
Copy-Item $Final_WebApp_Root\Config\$Choice\Web.configX $Final_WebApp_Root\web.config

write-host("Copying correct nhibernate config over")
Copy-Item $Final_WebApp_Root\Config\$Choice\NHibernate.config $Final_WebApp_Root\NHibernate.config

write-host("Deployed full application to environment")

1 个答案:

答案 0 :(得分:1)

尝试使用-Force参数替换只读文件。来自文档:

PS> help Copy-Item -Par force

-Force [<SwitchParameter>]
    Allows the cmdlet to copy items that cannot otherwise be changed, 
    such as copying over a read-only file or alias.