PowerShell 和 MSDeploy - 带空格的参数

2023-12-01

我无法弄清楚如何使用 msdeploy.exe 和 PowerShell v4 传递包含带空格的文件夹的参数。

示例 Powershell 脚本

write-warning "WITHOUT SPACE"
$fl1 = "d:\nospace\a.txt"
$fl2 = "d:\nospace\b.txt"

$arg1 = "-source:filePath=`"$fl1`""
$arg2 = "-dest:filePath=`"$fl2`""

msdeploy.exe "-verb:sync",$arg1,$arg2

write-warning "WITH SPACE"
$fl1 = "d:\space space\a.txt"
$fl2 = "d:\space space\b.txt"

$arg1 = "-source:filePath=`"$fl1`""
$arg2 = "-dest:filePath=`"$fl2`""

msdeploy.exe "-verb:sync",$arg1,$arg2

当文件夹名称没有空格时,它可以正常工作,但是当它有空格时,它会失败:

msdeploy.exe : Error: Unrecognized argument '"-source:filePath="d:\space'. All arguments must begin with "-".
At E:\PAWS\Payroll System\PES-Branch-FW\Publish\DeployPackage.ps1:253 char:9
+         msdeploy.exe "-verb:sync",$arg1,$arg2
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (Error: Unrecogn...begin with "-".:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

Error count: 1.

使用以下命令手动调用 msdeploy.exe:

msdeploy -verb:sync -source:filePath="d:\space space\a.txt" -dest:filePath="d:\space space\b.txt"

这在命令提示符下工作正常,但在 PowerShell 下不起作用。

我使用这个博客作为帮助,但没有任何运气:http://trycatchfail.com/blog/post/The-Trials-and-tribulations-of-using-MSDeploy-with-PowerShell.aspx

Update

我还研究了一些更多的例子。如果执行标准复制操作,powershell 能够将路径传递给 cmd.exe(复制)。

write-warning "WITHOUT SPACE"
$fl1 = "d:\nospace\a.txt"
$fl2 = "d:\nospace\b.txt"

$args = ('"{0}" "{1}"' -f $fl1, $fl2)
write-host $args
cmd /c copy $args

write-warning "WITH SPACE"
$fl1 = "d:\space space\a.txt"
$fl2 = "d:\space space\b.txt"

$args = ('"{0}" "{1}"' -f $fl1, $fl2)
write-host $args
cmd /c copy $args

由于空间问题,使用相同的方法更新 msdeploy 代码片段仍然失败。

write-warning "WITHOUT SPACE"
$fl1 = "d:\nospace\a.txt"
$fl2 = "d:\nospace\b.txt"

$arg1 = '-source:filePath="{0}"' -f $fl1
$arg2 = '-dest:filePath="{0}"' -f $fl2

$args = '-verb:sync',$arg1, $arg2
msdeploy.exe $args

write-warning "WITH SPACE"
$fl1 = "d:\space space\a.txt"
$fl2 = "d:\space space\b.txt"

$arg1 = '-source:filePath="{0}"' -f $fl1
$arg2 = '-dest:filePath="{0}"' -f $fl2

$args = '-verb:sync',$arg1, $arg2
msdeploy.exe $args

一种解决方案

https://stackoverflow.com/a/12813048/1497635

我想补充一点,三个转义字符绝对是疯狂的。必须有一个更简洁的解决方案来解决这个问题。


我使用了以下建议:当参数有空格时,如何从 powershell 调用 msdeploy?

得出“更清洁”的解决方案。

    $msdeploy = "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe";

    write-warning "WITHOUT SPACE"
    $fl1 = "d:\nospace\a.txt"
    $fl2 = "d:\nospace\b.txt"

    $md = $("`"{0}`" -verb:sync -source:filePath=`"{1}`" -dest:filePath=`"{2}`"" -f $msdeploy, $fl1, $fl2)
    cmd.exe /C "`"$md`""

    write-warning "WITH SPACE"
    $fl1 = "d:\space space\a.txt"
    $fl2 = "d:\space space\b.txt"

    $md = $("`"{0}`" -verb:sync -source:filePath=`"{1}`" -dest:filePath=`"{2}`"" -f $msdeploy, $fl1, $fl2)
    cmd.exe /C "`"$md`""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PowerShell 和 MSDeploy - 带空格的参数 的相关文章

随机推荐

  • 下游 Jenkins 项目上游运行参数错误

    我在 Jenkins 构建管道方面遇到问题 第一个作业之后的所有作业均使用第一个作业的 运行参数 进行参数化 默认情况下 这应该引用第一个作业的最新稳定版本 每个后续作业都使用第一个作业的 运行参数 来访问第一个作业中保存的工件 每个后续作
  • 动态更改对讲语言?

    我有一个带有翻译测验的应用程序 我想让盲人也可以使用它 问题是 当我专注于西班牙语句子 例如 时 Talkback 会用英语读出它 有没有办法在Java中动态触发西班牙语TTS 谢谢 是的 现在有 你必须把字符串包裹在一个LocaleSpa
  • Maven 原型中的公爵年龄在哪里?每第一杯 JEE7

    我正在关注EJB 的 JEE7 第一杯方向 在基于原型创建应用程序之前 您必须 首先将原型和支持项目安装到本地 Maven 存储库 In NetBeans IDE select File then Open Project navigate
  • 如何将 Visual Foxpro dbfs 与 MySQL 同步?

    我正在尝试将遗留应用程序 将数据存储在 VisualFoxpro dbfs 中 同步到 MySQL 或 SqlServer 2005 这将使我们能够在线查看某些信息 我每天至少需要两次同步 我怎样才能做到这一点 我不知道有任何现成的软件可以
  • 了解task_basic_info任务resident_size

    简短的问题 某人 引 5 告诉我驻留内存可以被我的系统回收 这是什么意思 这是否意味着我的应用程序没有使用该内存 或者驻留内存值是否与我的应用程序当前使用的内存直接相关 除了这些之外 我还没有找到太多关于此的文档answers 我正在尝试解
  • Javascript弹出窗口焦点问题

    我想创建一个 弹出窗口 每次单击按钮时都会获得焦点 下面的函数可以很好地执行onclick事件 但当父页面刷新并从 onload 事件执行时 不会按预期执行 这是我的功能 function PopupDelete delete images
  • 快速 numpy 滚动_产品

    我需要一个rolling product函数 或者一个expanding product函数 有各种pandas rolling XXXX and expanding XXXX功能 但我惊讶地发现没有expanding product 功能
  • 抽象类和 PyMongo;无法实例化抽象类

    我创建了空的抽象类AbstractStorage并继承了Storage来自它的类 import abc import pymongo as mongo host mongo MongoClient print host alive True
  • Android - 使用服务在浮动窗口上播放 YouTube Api 播放器

    我喜欢在 Android 上将 YouTube 播放器实现为浮动窗口 位于所有应用程序之上 我看到很多应用程序都具有相同的功能像这个 我尝试了解如何实施它 我试过这个 wm WindowManager getSystemService Co
  • 如何在单选按钮中添加jquery验证红框效果

    如果 jQuery 验证像示例图片中那样激活 我想制作一个红色阴影框 红色边框 有人可以帮我解决这个问题吗 我的代码如下所示 document ready function var month day year for var i 1 i
  • 消除 ggplot y 轴和第一个 x 值之间的间隙

    我需要消除 x 轴上 1950 年之前的间隙 我尝试过使用scale x continuous但这会导致 Error Discrete value supplied to continuous scale 我相信这一定与数据的日期格式有关
  • 单击时确定句子的字符

    在一次随机休息时 我发现自己想知道是否可以使用 jQuery 来确定单击句子中的单个字符 例如 This 当用户第一次点击h jQuery 会将其返回给我 我能想到的唯一方法是将句子中的每个字符用其字母的类别包装在一个跨度中 如下例所示 s
  • Neo4J Cypher - 匹配节点的关系计数

    我正在开发一个小项目 我必须在 Twitter 等用户之间保持关注 我正在尝试进行一个查询 返回某个节点的追随者 我们将其称为 X 节点 因此 查询返回 X 的关注者以及 X 的关注者的关注者计数 以及 X 的关注者关注的节点数 包括该计数
  • 如何使用 HTML/CSS/JavaScript 开发桌面应用程序? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 首先 我对专业地做这件事不感兴趣 我是一名 Web 开发人员 我的一位同事最近离开 Spotify 并表示他将主要从事 Spotify 桌面应用程序的 JavaScript 工作
  • Ansible 命令模块显示“|”是非法字符

    我正在使用 Ansible 部署我的项目 并尝试检查是否安装了指定的包 但我的任务有问题 以下是任务 name Check if python apt is installed command dpkg l grep python apt
  • PHPMailer字符编码问题

    我尝试使用PHPMailer发送注册 激活 等邮件给用户 require class phpmailer php mail gt charSet UTF 8 mail new PHPMailer mail gt IsSMTP mail gt
  • Angular:我在注入器模块上不断收到此错误

    我正在制作一个有角度的应用程序 它不断出现此错误 未捕获的错误 injector modulerr http errors angularjs org 1 4 9 injector modulerr p0 webinarApp p1 错误
  • 查找迭代器的值类型

    我有一个模板参数InIter在我的一个重载函数中 我需要调用for each n循环使用InIter for x迭代 这对我来说没有任何困难 但我无法获得值类型迭代器的 举个例子 invalid lambda function for ea
  • 我可以将存储库排列到 Github 上的文件夹中吗?

    我是 git 新手 我现在正在做的是将我最近的所有项目作为存储库上传到 github 有很多不同的项目 例如网页设计 WordPress 主题和不同类型的应用程序 其中一些也属于更大的项目 因为它们是将某些东西作为不同的应用程序进行测试 问
  • PowerShell 和 MSDeploy - 带空格的参数

    我无法弄清楚如何使用 msdeploy exe 和 PowerShell v4 传递包含带空格的文件夹的参数 示例 Powershell 脚本 write warning WITHOUT SPACE fl1 d nospace a txt