我在参数中遇到空格问题,我尝试从powershell脚本发送到msdeploy.
还有许多其他相关文章,但没有一个解决问题.
使用Power Shell和MSDeploy的问题.
类似的SO问题不起作用:如何在带有空格和引号的参数的
PowerShell中运行exe PowerShell BUG:执行需要引号和变量的命令实际上是不可能的
另一个SO问题不起作用:在PowerShell 2.0中传递参数
当我使其变得更复杂时,成功然后失败的最简单的例子就是转储默认网站.
$ msdeploy ="C:\ Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"
&$ msdeploy -verb:dump -source:appHostConfig =`'default web site`'-verbose
== SUCCESS
这个?
$ sitename ="默认网站"
&$ msdeploy -verb:dump -source:appHostConfig = $ sitename -verbose
== FAIL,出现以下错误
msdeploy.exe:错误:无法识别的参数'" - source:"appHostConfig = default'.所有参数必须以" - "开头.
在C:\ xxx\test.ps1:122 char:6
+&
+ CategoryInfo:NotSpecified :(错误:Unrecogn ...以" - "开头:String)[],RemoteException
+ FullyQualifiedErrorId:NativeCommandError
错误计数:1.
以下变化也失败了
#FAIL
$ sitename =`'默认网站''
$ sitename =`'"默认网站"`'
$ sitename ="`''默认网站`'"
$ sitename ="默认网站"
$ …
使用Powershell和Psake为可视化工作室解决方案创建包和部署.尝试使用msbuild部署数据库项目 - 使用msdos visual studio命令行正常工作
msbuild /target:Deploy /p:UseSandboxSettings=false /p:TargetConnectionString="aConnectionWithSpacesAndSemiColons" "aDatabaseProjectPathWithSpaces"
Run Code Online (Sandbox Code Playgroud)
从powershell调用时,相同的方法调用会导致错误
& msbuild /target:Deploy /p:UseSandboxSettings=false /p:TargetConnectionString="aConnectionWithSpacesAndSemiColons" "aDatabaseProjectPathWithSpaces"
Run Code Online (Sandbox Code Playgroud)
与空间有关 - 无法弄清楚如何在powershell中复制此调用 - 示例数据库连接字符串数据源=.\ SQL2008;初始目录= DocumentExecution; Integrated Security = True;
作为azure devops构建管道的一部分,我正在运行NUnit测试(.Net Framework 4.5中的项目)。
- task: VSTest@2
inputs:
testAssemblyVer2: 'tests/**/*.Tests.dll'
pathtoCustomTestAdapters: '$(Build.SourcesDirectory)/packages'
codeCoverageEnabled: true
displayName: 'NUnit Testing'
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: JaCoCo
summaryFileLocation: '$(Common.TestResultsDirectory)/**/*.xml'
displayName: 'Publish Code Coverage'
// summaryFileLocation: '$(Common.TestResultsDirectory)/**/*.coverage'
Run Code Online (Sandbox Code Playgroud)
但是我看不到覆盖率报告,只看到覆盖率结果的下载链接...
如何将.coverage报告转换为JaCoCo格式?或直接以JaCoCo格式生成报告?
我已经看到了一些针对.Net Core(链接)的解决方案,但是没有针对.Net框架的解决方案
我已经阅读了这个答案stackoverflow的答案,它让我在那里中途.这是我需要做的.
执行以下命令:
"c:\myexe.exe <c:\Users\Me\myanswerfile.txt"
Run Code Online (Sandbox Code Playgroud)
如果我从我的powershell脚本中直接运行它
&'c:\myexe.exe <c:\Users\Me\myanswerfile.txt'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
The term 'C:\myexe.exe <c:\Users\Me\myanswerfile.txt' is not recognized as the name of
a cmdlet, function, script file, or operable program. Check the spelling of the name,or
if a path was included, verif that the path is correct and try again.
Run Code Online (Sandbox Code Playgroud)
现在我尝试了几种变体,包括将原始命令放在一个名为$ cmd的变量中,然后传递
如果我将'<'附加到$ cmd变量,则命令失败并出现与第一个类似的错误.
我很难过.有什么建议?
我正在尝试使用PowerShell登录Oracle DB并运行名为"C:\ Users\Administrator\Desktop\oracle\OracleCleanTest.sql"的脚本,当我执行PS时没有任何反应.
这就是我所拥有的.
$adminLogon = "sys as sysdba/manager@ORCL"
$logon = "sqlplus\sql/manager@ORCL"
$mydata = Invoke-SqlPlus -inputfile "@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql" $logon
Run Code Online (Sandbox Code Playgroud)
我也试过这个.
$database = "ORCL";
$user = "sys as sysdba";
$pw = "manager";
sqlplus.exe -d $database -U $user -P $pw -I "@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql"
Run Code Online (Sandbox Code Playgroud)
我试过这个.
& 'C:\app\Administrator\product\11.2.0\client_1\BIN\sqlplus.exe' 'QE-JDBC-1/manager@ORCL sys as sysdba' '@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql'
Run Code Online (Sandbox Code Playgroud)
我收到错误,"&:模块'sqlplus'无法加载.有关更多信息,请运行'Import-Module sqlplus'.在行:5 char:3 +&$ mydata Invoke-SqlPlus -inputfile"@C:\Users\Administrator\Desktop\oracle\Orac ... + ~~~~~~~ + CategoryInfo:ObjectNotFound:(sqlplus\sql/manager @ ORCL:String)[],ParentContainsErrorRecordException + FullyQualifiedErrorId:CouldNotAutoLoadModule"
我尝试使用特定的用户配置文件(--profile-directory 参数)在 PowerShell 中启动 Chrome,但它会创建一个新的配置文件。
我试过了:
& "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory=Foobar
& "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --profile-directory=Foobar"
& "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --profile-directory='Foobar'"
Start-Process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory=Foobar
Start-Process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --profile-directory=Foobar"
Run Code Online (Sandbox Code Playgroud)
ETC....
在堆栈外运行美味测试时,我需要将字符串“失败日志”作为美味模式参数传递。
这在 bash 中非常简单:
PS C:\Pyrethrum> stack test --fast --ta "-p \"fail log\""
但尝试使用 Powershell 实现同样的目标让我抓狂:
PS C:\Pyrethrum> stack test --fast --ta "-p ""fail"" "
当没有空间时可以工作(运行测试)
PS C:\Pyrethrum> stack test --fast --ta "-p ""fail log"" "
解析目标时出错:找不到目录:日志
PS C:\Pyrethrum> stack test --fast --ta "-p `"fail log`""
尝试安装一个名为 log 的包
PS C:\Pyrethrum> stack test --fast --ta "-p \"fail log\""
选项 --ta:未终止的字符串:endOfInput
PS C:\Pyrethrum> stack test --fast --ta "-p /fail log/ "
...构建但模式需要引号
除虫菊-0.1.0.0:测试(套件:除虫菊测试,参数:-p /失败日志/)
选项-p:无法解析模式
让它在 Powershell 中运行的正确命令行是什么?
我在 C:\Folder 有一个文件夹,其中包含文件 input.xml、output.xml 和 licensegenerator.exe。Licensegenerator.exe 获取我们放入 input.xml 的变量,并使用 output.xml 文件为我们的程序之一创建临时许可证。我们通常通过命令行导航到 C:\Folder 目录,然后运行以下命令:
LicenseGenerator.exe "C:\Folder\input.xml" "C:\Folder\output.xml"
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个脚本来在 PowerShell 中执行完全相同的操作,但我正在努力……这是我所拥有的:
$inputtest = "C:\Folder\Input.xml"
$outputtest = "C:\Folder\Output.xml"
$licensegen = "C:\Folder\LicenseGenerator.exe"
Invoke-Command $licensegen "$inputtest" "$outputtest"
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到错误:
调用命令:找不到接受参数的位置参数
'C:\Folder\Output.xml'。
在行:5 字符:1
+ 调用命令 $licengegen "$inputtest" "$outputtest"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException
+ FullQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand
我也试过运行,Invoke-Expression但得到完全相同的错误(除了开头说“调用表达式”)。有人知道我在这里做错了什么吗?
powershell ×7
asp.net-4.5 ×1
azure ×1
azure-devops ×1
haskell ×1
iis ×1
msbuild ×1
msdeploy ×1
nunit-3.0 ×1
oracle ×1
psake ×1
sql ×1
sqlplus ×1
user-profile ×1
windows ×1