如何在PowerShell中执行如下命令并将其拆分为多行?
&"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web" -dest:contentPath="c:\websites\xxx\wwwroot\,computerName=192.168.1.1,username=administrator,password=xxx"
Run Code Online (Sandbox Code Playgroud) 这应该很容易,但无法弄清楚.如何在PowerShell中结束多行命令?例如,如果我输入Get-ChildItem |并按回车键然后我得到一个>>提示,我假设是继续命令.但如果我进入foreach{Write-Host $_.name}并按回车键,我仍然会收到>>提示.
我怎么说,我已经完成了,现在运行它?我以为当我写一个完整的命令(不是以管道或未闭合的括号结尾)时会发生这种情况,但似乎没有.也尝试以分号结尾,但这没有多大帮助.
我想知道是否可以将一个小脚本传递给ScriptBlock参数但是在一行中完成所有操作?
例如,我想运行以下两个命令:
import-module lync get-csuser
如果我有一个powershell脚本文件并明确调用该文件,我可以这样做.脚本的内容如下所示
invoke-command -ComputerName mycomputer.mylab.com -ScriptBlock {
import-module lync
get-csuser
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在不将其放入临时脚本文件的情况下执行上述操作并在一个石灰上执行此操作.这可能吗?
谢谢
我知道两者都在 PowerShell 中使用,但用于不同的上下文。
互联网上有关此主题的信息很少,唯一谈论此主题的网站(没有让我理解这个概念)是:
https ://www.rlmueller.net/PowerShellEscape.htm
我是 PowerShell 的初学者,最近才接触它。在我的另一个主题的答案中出现了转义
的用例:当我将参数传递给嵌套的 Start-Process 命令时,PowerShell 删除多个连续的空格\
有谁可以通过示例和用例向我详细解释PowerShell中转义反引号`和反斜杠之间的区别吗\?
至少有一个来源是受欢迎的,但这不是强制性的。
我试图了解在PowerShell中使用的习语.
鉴于此脚本:
$path = 'hkcu:\Software\Microsoft\Windows\CurrentVersion\Extensions'
$key = Get-Item $path
$key
Run Code Online (Sandbox Code Playgroud)
我得到了这个问题底部的输出.
我想得到属性的输出(名称/值对下$key)我可以在名称和值上进行过滤.
例如,过滤列出所有具有以下内容的扩展:
xls**\MSACCESS.EXE或者排除过滤器:排除所有名称 doc*
冷杉第一个过滤器,我想要一个像这样的结果:
Name Value
---- --------
xlsx C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE
xls C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE
mdb C:\PROGRA~2\MICROS~1\Office15\MSACCESS.EXE
mda C:\PROGRA~2\MICROS~1\Office15\MSACCESS.EXE
Run Code Online (Sandbox Code Playgroud)
这是脚本的原始输出:
Hive: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
Name Property
---- --------
Extensions rtf : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.rtf
dot : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.dot
dotm : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.dotm
dotx : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.dotx
docm : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.docm
docx : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.docx
doc : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.doc
xlsx : C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE
xls : C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE
mdb : C:\PROGRA~2\MICROS~1\Office15\MSACCESS.EXE
mda …Run Code Online (Sandbox Code Playgroud) 我正在尝试在cmd中使用以下Powershell脚本。这是一个简单的例子:
$path = "c:\"
cd $path
ls
Run Code Online (Sandbox Code Playgroud)
一些多行且带引号的PowerShell脚本。
我阅读了这篇文章以及@Alex在这篇文章中的回答,但是;在它们之间放置多行并没有用:
C:\ Users \ abcd> powershell“&c:\; ls”
&:术语'c:\'不被识别为cmdlet,函数,
脚本文件或可操作程序。检查名称的拼写,或者
包含路径,请确认路径正确,然后重试。
行:1字符:2
+&c:\; ls
+ ~~~
+ CategoryInfo:ObjectNotFound:(c:\:String)[],CommandNotFoundException
+ FullyQualifiedErrorId:CommandNotFoundException
PS:我的实际任务是运行以下命令(我在上面提供了琐碎的任务,因为并非每个人都有数据库)。
$tabular_server = "abc_123\Tabular"
[Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($tabular_server)
$db = $server.Databases.Item("db_name")
$db.Process("ProcessClear")
$db.Process("ProcessDefault")
$server.Disconnect()
Run Code Online (Sandbox Code Playgroud) 我知道如何使用back-tick在脚本窗格或PowerShell脚本中创建多行命令.这不是一个问题.如果我在vanilla PowerShell(而不是ISE)中,我想在提示符下键入此命令:
Get-Command `
| Sort Name `
| Select -First 10
Run Code Online (Sandbox Code Playgroud)
如何在Get-Command不执行之后移动到下一行?
这个问题的扩展......你如何在Powershell ISE中编写多行命令?Backtick不起作用.
我在谈论命令提示符窗口 C:\>