标签: powershell

Powershell中的"@"符号有什么作用?

我已经看到PowerShell中使用的@符号来初始化数组.@符号究竟是什么意思,我在哪里可以阅读更多信息?

syntax powershell

102
推荐指数
5
解决办法
9万
查看次数

使用PowerShell脚本执行EXE文件

我正在尝试使用PowerShell脚本执行EXE文件.如果我使用命令行它没有问题(首先我提供可执行文件的名称和一系列参数来调用它):

"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode
Run Code Online (Sandbox Code Playgroud)

但是在脚本中执行完全相同的操作会返回错误:

术语 "C:\ Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe"C:\ temp\TestProject1\TestProject1.pjs/run/exit/SilentMode' 无法识别为cmdlet的名称,函数,脚本文件或可操作程序.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.

(我使用"&"运算符调用了命令.)

我该如何解决这个问题?

powershell powershell-2.0

101
推荐指数
3
解决办法
23万
查看次数

PowerShell 3的文件扩展名

我们所有人都可能知道.bat批处理文件.

但是PowerShell 3脚本的文件扩展名是什么?

我发现了.ps1一些其他的结局,但它们仅适用于版本1.

windows shell powershell windows-8

101
推荐指数
1
解决办法
5万
查看次数

如何获取远程计算机的磁盘容量和可用空间

我有这个单行:

get-WmiObject win32_logicaldisk -Computername remotecomputer
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

DeviceID     : A:
DriveType    : 2
ProviderName :
FreeSpace    :
Size         :
VolumeName   :

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 20116508672
Size         : 42842714112
VolumeName   :

DeviceID     : D:
DriveType    : 5
ProviderName :
FreeSpace    :
Size         :
VolumeName   :
Run Code Online (Sandbox Code Playgroud)

如何获得FreespaceSizeDeviceID C:?我需要提取这两个值而没有其他信息.我用Selectcmdlet 尝试过,但没有效果.

编辑: 我只需要提取数值并将它们存储在变量中.

powershell scripting powershell-2.0

101
推荐指数
9
解决办法
55万
查看次数

从PowerShell阵列中删除重复值

如何从PowerShell阵列中删除重复项?

$a = @(1,2,3,4,5,5,6,7,8,9,0,0)
Run Code Online (Sandbox Code Playgroud)

arrays powershell

100
推荐指数
5
解决办法
17万
查看次数

在PowerShell中检查路径是否存在的更好方法

我只是不喜欢以下语法:

if (Test-Path $path) { ... }
Run Code Online (Sandbox Code Playgroud)

if (-not (Test-Path $path)) { ... }
if (!(Test-Path $path)) { ... }
Run Code Online (Sandbox Code Playgroud)

特别是在检查"不存在"这种常见用途时,括号太多且不易读.有什么更好的方法呢?

更新:我目前的解决方案是使用别名exist,并not-exist为解释在这里.

PowerShell存储库中的相关问题:https://github.com/PowerShell/PowerShell/issues/1970

powershell

100
推荐指数
4
解决办法
29万
查看次数

如何在PowerShell中连接两个文本文件?

我试图在Unix中复制"cat"命令的功能.

我想避免解决方案,我明确地将两个文件读入变量,将变量连接在一起,然后写出连接变量.

powershell powershell-2.0

98
推荐指数
7
解决办法
10万
查看次数

在Powershell中打印对象属性

在交互式控制台中工作时,如果我定义一个新对象并为其分配一些属性值,如下所示:

$obj = New-Object System.String
$obj | Add-Member NoteProperty SomeProperty "Test"
Run Code Online (Sandbox Code Playgroud)

然后,当我在交互式窗口中键入我的变量名称时,Powershell为我提供了对象属性和值的摘要:

PS C:\demo> $obj
SomeProperty                                                                                                                                                                                  
------------                                                                                                                                                                                  
Test
Run Code Online (Sandbox Code Playgroud)

我基本上想要这样做,但是从脚本中的函数内部做.该函数创建一个对象并设置一些属性值,我希望它在返回之前将对象值的摘要打印到Powershell窗口.我尝试在函数中使用Write-Host:

Write-Host $obj
Run Code Online (Sandbox Code Playgroud)

但这只是输出对象的类型而不是摘要:

System.Object
Run Code Online (Sandbox Code Playgroud)

如何让我的函数输出对象属性值的摘要到Powershell窗口?

powershell

98
推荐指数
5
解决办法
13万
查看次数

如何使用join-path将两个以上的字符串组合到文件路径中?

如果我想将两个字符串组合成文件路径,我使用Join-Path如下:

$path = Join-Path C: "Program Files"
Write-Host $path
Run Code Online (Sandbox Code Playgroud)

那打印"C:\Program Files".如果我想为两个以上的字符串执行此操作:

$path = Join-Path C: "Program Files" "Microsoft Office"
Write-Host $path
Run Code Online (Sandbox Code Playgroud)

Powershell抛出一个错误:

[string[]] $pieces = "C:", "Program Files", "Microsoft Office"
$path = Join-Path $pieces
Write-Host $path
Run Code Online (Sandbox Code Playgroud)

我尝试使用字符串数组:

C:\somepath
Program Files\somepath
Microsoft Office\somepath
Run Code Online (Sandbox Code Playgroud)

但是Powershell提示我输入子路径(因为我没有指定-childpath参数),例如"somepath",然后创建三个文件路径,

$path = Join-Path C: "Program Files"
Write-Host $path
Run Code Online (Sandbox Code Playgroud)

哪个也不对.

powershell

98
推荐指数
7
解决办法
8万
查看次数

在powershell中无法合并

在PowerShell中是否存在空合并运算符?

我希望能够在powershell中执行这些c#命令:

var s = myval ?? "new value";
var x = myval == null ? "" : otherval;
Run Code Online (Sandbox Code Playgroud)

powershell null-coalescing-operator

97
推荐指数
6
解决办法
4万
查看次数