对于包含散列 (#) 的文件夹名称,Add-PnPFolder 失败
Add-PnPFolder fails for folder names containing a hash (#)
我想使用 PowerShell pnp 在 SharePoint Online 中创建一个名称中带有井号标签 (#) 的文件夹,但以下命令失败并显示错误消息“参数必须是单个文件夹名称并且不能包含路径字符”。 (来自 SharePoint Online UI,它允许使用 # 创建 folders/files)。
Add-PnPFolder -Name "Test # Lists" -Folder "ABC/"
使用Add-PnPFile
上传名称中包含#的文件时出现同样的错误
我试过转义 (`#) 但它给出了同样的错误。还尝试使用“%23”对 # 进行编码,但它会创建一个名称中包含 %23 而不是 # 的文件夹。
非常感谢任何解决方案或解决方法。
您可以 运行 代码行创建不带“#”的文件夹:
Add-PnPFolder -Name 'Test Lists' -Folder 'ABC'
然后重命名文件夹:
Rename-PnPFolder -Folder 'ABC/Test Lists' -TargetFolderName 'Test # Lists'
并非所有 API 都支持使用 # 或 % 创建 files/folders。
您可以使用 SharePoint Online Powershell 创建一个名称中带有“#”的文件夹。
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
$SiteUrl = "https://contoso.sharepoint.com/sites/dev"
$ListURL="/sites/dev/lib"
$FolderName="Reports#"
$UserName="amos@contoso.onmicrosoft.com"
$Password ="Password"
#Setup Credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))
Try {
#Set up the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Context.Credentials = $credentials
#Get the List Root Folder
$ParentFolder=$Context.web.GetFolderByServerRelativeUrl($ListURL)
#sharepoint online powershell create folder
$Folder = $ParentFolder.Folders.Add($FolderName)
$ParentFolder.Context.ExecuteQuery()
Write-host "New Folder Created Successfully!" -ForegroundColor Green
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
& 也不支持。似乎类似的问题已针对“复制”例程修复,但直到现在还未针对“添加”例程修复。看起来 String 与这些字符断开,它还会混淆浏览器以呈现可以假定为参数的文件名
我想使用 PowerShell pnp 在 SharePoint Online 中创建一个名称中带有井号标签 (#) 的文件夹,但以下命令失败并显示错误消息“参数必须是单个文件夹名称并且不能包含路径字符”。 (来自 SharePoint Online UI,它允许使用 # 创建 folders/files)。
Add-PnPFolder -Name "Test # Lists" -Folder "ABC/"
使用Add-PnPFile
我试过转义 (`#) 但它给出了同样的错误。还尝试使用“%23”对 # 进行编码,但它会创建一个名称中包含 %23 而不是 # 的文件夹。
非常感谢任何解决方案或解决方法。
您可以 运行 代码行创建不带“#”的文件夹:
Add-PnPFolder -Name 'Test Lists' -Folder 'ABC'
然后重命名文件夹:
Rename-PnPFolder -Folder 'ABC/Test Lists' -TargetFolderName 'Test # Lists'
并非所有 API 都支持使用 # 或 % 创建 files/folders。
您可以使用 SharePoint Online Powershell 创建一个名称中带有“#”的文件夹。
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
$SiteUrl = "https://contoso.sharepoint.com/sites/dev"
$ListURL="/sites/dev/lib"
$FolderName="Reports#"
$UserName="amos@contoso.onmicrosoft.com"
$Password ="Password"
#Setup Credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))
Try {
#Set up the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Context.Credentials = $credentials
#Get the List Root Folder
$ParentFolder=$Context.web.GetFolderByServerRelativeUrl($ListURL)
#sharepoint online powershell create folder
$Folder = $ParentFolder.Folders.Add($FolderName)
$ParentFolder.Context.ExecuteQuery()
Write-host "New Folder Created Successfully!" -ForegroundColor Green
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
& 也不支持。似乎类似的问题已针对“复制”例程修复,但直到现在还未针对“添加”例程修复。看起来 String 与这些字符断开,它还会混淆浏览器以呈现可以假定为参数的文件名