我不知道如何获取查询结果(qty_records)为5,因此可以在PowerShell If语句中使用它。
====
$my_query = "select count(CustomerNumber) as qty_records from customers"
$qty_records = Invoke-Sqlcmd -Query $my_query -ServerInstance "2008c" -Username sa -Password abc.1234 -Database MikeDB
if ($qty_records -gt 4) {
write-host "do something"
} else {
Write-Host "do something else"
}
Run Code Online (Sandbox Code Playgroud)
======谢谢
嘿家伙我无法弄清楚如何将以下函数(需要输入)转换为变量
function Convert-ToLetters ([parameter(Mandatory=$true,ValueFromPipeline=$true)][int] $value) {
$currVal = $value;
$returnVal = '';
while ($currVal -ge 26) {
$returnVal = [char](($currVal) % 26 + 65) + $returnVal;
$currVal = [int][math]::Floor($currVal / 26)
}
$returnVal = [char](($currVal) + 64) + $returnVal;
return $returnVal
}
Run Code Online (Sandbox Code Playgroud)
此函数的作用是将数字转换为字母.
现在我想要实现的是以某种方式做到这一点:
$convert2letter = Convert-ToLetters()
Run Code Online (Sandbox Code Playgroud)
所以我可以做类似的事情
$WR= "$convert2letter($CValue1)" + "-" + "$convert2letter($CValue2)" + "-" + "3"
Run Code Online (Sandbox Code Playgroud)
但是Powershell不允许我做$ convert2letter
那我该怎么办?
谢谢
在检索计算机的操作系统时,根据我使用的是if语句还是交换机,我会得到不同的结果:
if (((Get-WmiObject -ComputerName DT-04 Win32_OperatingSystem).Caption.ToString()) -match "Microsoft Windows 7 Professional") { "Found" } Else { "Not found" }
Run Code Online (Sandbox Code Playgroud)
结果=找到
switch ((Get-WmiObject -ComputerName DT-04 Win32_OperatingSystem).Caption.ToString()) { "Microsoft Windows 7 Professional" { "Found" } Default { "Not Found" } }
Run Code Online (Sandbox Code Playgroud)
结果=未找到
为什么会这样?
如何使用命名空间Add-Type添加C#代码System.Windows.Forms?我尝试了以下命令:
Add-Type -TypeDefinition @"
using System;
using System.Windows.Forms;
namespace testnamespace
{
public static class testclass
{
public static string messagebox()
{
MessageBox.Show("test")
return "test";
}
}
}
"@
Run Code Online (Sandbox Code Playgroud)
但是我遇到了一些错误,例如:
类型或名称空间名称“ Forms”在名称空间“ System.Windows”中不存在(您是否缺少程序集引用?)
我只是想用ONLY在PowerShell中的C#代码。请不要给我的选择。
我是PowerShell的新手,因此可以自我学习。我的问题是,您是否可以在同一行上同时执行“写入主机”和“日志写入”操作?
我所拥有的是:
Write-Host "Node Id is $nodeProps["NodeID"]"
LogWrite "Node Id is $nodeProps["NodeID"]"
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一种方法可以做到:
Write-Host, LogWrite "Node Id is $nodeProps["NodeID"]"
Run Code Online (Sandbox Code Playgroud)
感谢您提供的所有帮助!
如果我有这个功能:
Function Test-Foo {
$filePath = Read-Host "Tell me a file path"
}
Run Code Online (Sandbox Code Playgroud)
我如何模拟读取主机以返回我想要的内容?例如,我想做这样的事情(这不起作用):
Describe "Test-Foo" {
Context "When something" {
Mock Read-Host {return "c:\example"}
$result = Test-Foo
It "Returns correct result" {
$result | Should Be "c:\example"
}
}
}
Run Code Online (Sandbox Code Playgroud) 假设我写了一个包含此命令的PowerShell脚本:
Get-ChildItem -Recurse
Run Code Online (Sandbox Code Playgroud)
但相反,我写道:
Get-ChildItem -Re
Run Code Online (Sandbox Code Playgroud)
为了省时间.经过一段时间后,我升级了PowerShell版本,Microsoft决定向Get-ChildItem添加一个名为"-Return"的参数,例如,根据是否找到任何项目,返回True或False.
在那个虚拟场景中,我是否可以编辑所有以前的脚本以确保脚本按预期运行?我理解微软试图节省我的打字时间,但这是我的担忧,因此我可能总是会尝试编写完整的参数名称.
除非你当然知道我不知道的事情.感谢您的见解!
使用Powershell,是否有将负数设置为零的功能?
或者这是吗?
If ($num -lt 0) {$num = 0}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用PowerShell从Microsoft Azure获取VM OS名称.
我想我非常接近解决方案,但我不知道我哪里出错了.
这是我用来获取VM详细信息的命令:
Get-AzureRmVM -ResourceGroupName TEST -Name VF-Test1 | Select OsType
Run Code Online (Sandbox Code Playgroud)
我得到的答案只是空白.
运行以下命令时:
Get-AzureRmVM -ResourceGroupName TEST -Name VF-Test1
Run Code Online (Sandbox Code Playgroud)
我获得了属于该VM的所有细节.
我有一个文件列表说...
T123_Product_1.jpg
T123_Product_2.jpg
T123_Product_3.jpg
T456_Product_1.jpg
T456_Product_2.jpg
T456_Product_3.jpg
Run Code Online (Sandbox Code Playgroud)
等等等等等等大约另外900个文件
我需要做的是根据第一个下划线之前的字符创建一个文件夹,但由于有多个文件,因此不再重复。
因此,在上面的示例中,我只需要两个名为T123和T456的文件夹。
然后,我需要脚本将适当的文件放置在文件夹中。
我在此线程中找到了一些代码,但是它们并不能完全满足我的要求。
$Files = Get-ChildItem -Path 'C:\Info\AUGUST 2011\Checklists\' -Filter 'DET1__*'
$Files | ForEach-Object {
$FileFullName = $_.FullName
$TempFileName = "$($FileFullName).tmp"
$DestinationFileName = "$FileFullName\$($_.Name)"
Move-Item $FileFullName $TempFileName
New-Item -Path $FileFullName -ItemType Directory
Move-Item $TempFileName $DestinationFileName
}
Run Code Online (Sandbox Code Playgroud)
有什么帮助吗?
powershell ×10
naming ×2
.net ×1
azure ×1
c# ×1
consistency ×1
convention ×1
directory ×1
file ×1
function ×1
parameters ×1
pester ×1
sql ×1
variables ×1
write-host ×1