powershell - 创建可能与 WinSCP 409 冲突部分存在的目录结构
问题描述
我使用 WinSCP + Powershell 将 Jenkins 的构建结果自动传输到我们的共享服务器,以便 QA 和开发团队可以轻松访问它。
WinSCP 是必需的,因为它只能通过 Webdav 协议传输。别担心!
假设我需要创建的远程服务器上的目录是
MyProduct/BuildOutput/bin
现在,如果我使用完全缺失的文件夹结构执行以下命令,它可以完美运行。
$session.CreateDirectory("MyProduct/BuildOutput/bin")
但是,如果说“MyProduct/BuildOutput”结构已经存在但“bin”丢失,WinSCP 会给出 409 冲突错误。
有什么方法可以创建一个已经部分存在的完整目录结构,而无需编写复杂的程序来执行此操作?
解决方案
WinSCPCreateDirectory
方法不支持创建整个目录结构。只是一个目录。您将不得不自己构建结构。试试这个方法:
[Array]$dir = 'hello/this/is/test/directory/structure' -split '/'
$path = [System.String]::Empty
for ($i=0; $i-lt $dir.Count; $i++){
if ($i -lt $dir.Count){$path+= $dir[$i] + '/'}
$session.CreateDirectory($path)
}
推荐阅读
- angular - ngModel 在将其作为数组获取时无法在用户的输入中工作
- quarkus - 在 Mac 上安装/运行 GraalVM 的问题
- java - 如何在安卓应用中切换黑白 admob 和 facebook 广告
- javascript - 如何修复这个 php 致命错误致命错误:未捕获错误:调用未定义函数 nm_blog_get_ajax_content()?
- reactjs - 带有 act() 错误的 React Hooks 组件的 Jest 单元测试
- mongodb - 按 ObjectId 数组对文档进行分组
- reactjs - 库 React Material UI 排版中的变体与组件有什么区别
- c# - “Between”不起作用,我的代码中的错误在哪里?
- php - 比较两个数组并在php中返回结果
- python - DockerFile:容器化 python 不允许执行进一步的命令