我创build了一个PowerShell脚本,用于将文件复制到目录,该脚本首先创build一个文件夹,或者如果存在,则强制执行新的文件夹事件。 然后从另一个位置复制一个目录。 复制后,我需要复制正确的networkingconfiguration的文件取决于用户给出的值执行脚本。 我遇到的问题是我可以复制文件,但所有的文件都设置为只读的意思,当我尝试和复制正确的web.config,脚本失败,因为访问被拒绝。
这是简单的脚本的减less版本。
$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")
在执行Copy-Item时,使用-Force参数来解决只读属性的问题。 如果不能达到这个目的,那么你可以添加一个例程来使用Get-Item,并临时移除Read-Only属性,复制文件,然后重置属性。
希望这可以帮助。