我在讨论是否应该学习PowerShell,或者只是坚持使用Cygwin/Perl脚本/ Unix shell脚本等.
PowerShell的好处是,没有Cygwin的队友可以更容易地使用这些脚本; 但是,我不知道我是否真的要编写那么多通用脚本,或者人们是否会使用它们.
Unix脚本是如此强大,PowerShell是否足够接近切换?
以下是我在PowerShell中寻找的一些具体事项(或等价物):
是否可以将PowerShell命令行拆分为多行?
在Visual Basic中,我可以使用下划线(_)继续下一行中的命令.
IsNullOrEmpty在PowerShell中是否有内置函数来检查字符串是空还是空?
到目前为止我找不到它,如果有内置方式,我不想为此编写函数.
我一直在寻找一种在函数内发生不可恢复的错误时终止PowerShell(PS1)脚本的方法.例如:
function foo() {
# Do stuff that causes an error
$host.Exit()
}
Run Code Online (Sandbox Code Playgroud)
当然没有这样的事情$host.Exit().有$host.SetShouldExit(),但这实际上关闭了控制台窗口,这不是我想要的.我需要的是与Python相同的东西sys.exit(),只需停止执行当前脚本而不需要进一步的操作.
编辑:是的,它只是exit.咄.
我如何询问PowerShell的位置?
例如,"notepad",它根据当前路径返回运行notepad.exe的目录.
我必须查看大文件的最后几行(典型大小为500MB-2GB).我正在tail为Windows Powershell 寻找相当于Unix的命令.一些可供选择的是,
http://tailforwin32.sourceforge.net/
和
Get-Content [filename] | Select-Object -Last 10
对我来说,不允许使用第一种替代方案,第二种方案是缓慢的.有没有人知道PowerShell的尾部有效实现.
如何在PowerShell中运行以下命令?
C:\ Program Files\IIS\Microsoft Web Deploy\msdeploy.exe -verb:sync -source:dbfullsql ="Data Source = mysource; Integrated Security = false; User ID = sa; Pwd = sapass !; Database = mydb;" -dest:dbfullsql ="Data Source =.\ mydestsource; Integrated Security = false; User ID = sa; Pwd = sapass !; Database = mydb;",computername = 10.10.10.10,username = administrator,password = adminpass"
如何在Windows PowerShell中获取当前用户名?
我正在编写一个PowerShell脚本来创建几个目录(如果它们不存在).
文件系统看起来与此类似
D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
Run Code Online (Sandbox Code Playgroud)
我需要编写一个每天运行的脚本来为每个目录创建这些文件夹.
我能够编写脚本来创建文件夹,但创建几个文件夹是有问题的.
我几天前已经开始学习powershell了,我在google上找不到任何我需要的东西,所以请忍受我的问题.
我被要求将一些文本字符串替换为多个文件.我不一定知道可能的目标文件的扩展名,也不知道它们的位置.到目前为止,我已经设法以递归方式浏览目录(get-ChildItem -recurse),并使用get-content和select-string查找我正在寻找的字符串:
Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy"
Run Code Online (Sandbox Code Playgroud)
问题是,我可以看到我正在寻找的文本的出现,但我不知道如何告诉PS返回每个匹配文件的路径和名称.
如何获取包含我要查找的表达式的文件的名称和位置?