none
Загрузить файл в корень сайта SharePoint-а используя PowerShell RRS feed

Ответы

  • Для загрузки всех файлов из сетевой папки создал блок кода. Работает - файлы загружаются.

    Пож-та, прокомментируйте. Может есть избыточность или неправильно использую какие-нибудь конструкции.

    $files = dir "\\Server\Share\"
    $sitePath = "http://portal/"
    $WebMethod = "PUT"
    $LocalPath = for ($i=0; $i -lt $files.Count; $i++) {"\\Server\Share\" + $files[$i]}
    $UploadFullPath = for ($i=0; $i -lt $files.Count; $i++) {$sitePath + $(split-path -leaf $LocalPath[$i])}
    $WebClient = new-object System.Net.WebClient
    $WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    for ($i=0; $i -lt $files.Count; $i++)
        {
        $WebClient.UploadFile($UploadFullPath[$i],$WebMethod,$LocalPath[$i])
        }


    • Изменено Миг-29 13 октября 2011 г. 8:11
    • Помечено в качестве ответа KazunEditor 20 октября 2011 г. 8:42
    13 октября 2011 г. 8:08
  • Особо комментировать тут нечего,кроме как если в шаре будут,папки,то они тоже будут загружены или будет ошибка.

    $filePath = "\\Server\Share\"
    $sitePath = "http://portal/"
    $WebMethod = "PUT"
    $WebClient = new-object System.Net.WebClient 
    $WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    dir $filePath | where {!$_.PsIsContainer} | foreach {$WebClient.UploadFile(($sitePath + $_.Name),$WebMethod,($_.FullName))}
    


    • Помечено в качестве ответа KazunEditor 20 октября 2011 г. 8:42
    13 октября 2011 г. 8:33
    Отвечающий

Все ответы

  • Воспользовался вот этим блоком кода

    $LocalPath = "C:\document.txt"
    $sitePath = "http://portal/"
    $WebMethod = "PUT"
    $UploadFullPath = $sitePath + $(split-path -leaf $LocalPath)
    $WebClient = new-object System.Net.WebClient
    $WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    $WebClient.UploadFile($UploadFullPath, $WebMethod, $LocalPath)

    Если на сайте есть такой файл, то он заменяется без уведомления пользователя. Всегда же по умолчанию "компьютер" сообщает пользователю что файл существует и спрашивает: заменить или нет.

    Как сделать чтобы компьютер спрашивал?

    12 октября 2011 г. 4:58
  • Add-Type -AssemblyName System.Windows.Forms
    $LocalPath = "C:\document.txt"
    $sitePath = "http://portal/"
    $WebMethod = "PUT" 
    $UploadFullPath = $sitePath + $(split-path -leaf $LocalPath) 
    $WebClient = new-object System.Net.WebClient 
    $WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials 
    
    try {
    	$request = [System.Net.HttpWebRequest]::Create($UploadFullPath)
    	$request.Method = "Head"
    	$request.Credentials = [System.Net.CredentialCache]::DefaultCredentials 
    	$response = $reguest.GetResponse()
    	if($response.StatusCode -eq "OK")
    	{
    		$result = [System.Windows.Forms.MessageBox]::Show("Файл $UploadFullPath существует.Хотите перезаписать?","Операция над файлом",`
    		"YesNo","Warning","Button2")
    	}
    }
    catch {"$_"}
    
    switch($result)
    {
    	"YES" {$WebClient.UploadFile($UploadFullPath, $WebMethod, $LocalPath);break}
    	default {$WebClient.UploadFile($UploadFullPath, $WebMethod, $LocalPath);break}
    }
    


    • Изменено KazunEditor 12 октября 2011 г. 9:49
    12 октября 2011 г. 9:32
    Отвечающий
  • Для загрузки всех файлов из сетевой папки создал блок кода. Работает - файлы загружаются.

    Пож-та, прокомментируйте. Может есть избыточность или неправильно использую какие-нибудь конструкции.

    $files = dir "\\Server\Share\"
    $sitePath = "http://portal/"
    $WebMethod = "PUT"
    $LocalPath = for ($i=0; $i -lt $files.Count; $i++) {"\\Server\Share\" + $files[$i]}
    $UploadFullPath = for ($i=0; $i -lt $files.Count; $i++) {$sitePath + $(split-path -leaf $LocalPath[$i])}
    $WebClient = new-object System.Net.WebClient
    $WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    for ($i=0; $i -lt $files.Count; $i++)
        {
        $WebClient.UploadFile($UploadFullPath[$i],$WebMethod,$LocalPath[$i])
        }


    • Изменено Миг-29 13 октября 2011 г. 8:11
    • Помечено в качестве ответа KazunEditor 20 октября 2011 г. 8:42
    13 октября 2011 г. 8:08
  • Особо комментировать тут нечего,кроме как если в шаре будут,папки,то они тоже будут загружены или будет ошибка.

    $filePath = "\\Server\Share\"
    $sitePath = "http://portal/"
    $WebMethod = "PUT"
    $WebClient = new-object System.Net.WebClient 
    $WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    dir $filePath | where {!$_.PsIsContainer} | foreach {$WebClient.UploadFile(($sitePath + $_.Name),$WebMethod,($_.FullName))}
    


    • Помечено в качестве ответа KazunEditor 20 октября 2011 г. 8:42
    13 октября 2011 г. 8:33
    Отвечающий