小编Web*_*ron的帖子

如何存储Format-Table的输出以供以后使用

我有一个脚本可以创建多个作业并在作业中存储两个简单的值.

Start-Job -ScriptBlock {param ([string]$compip) tnc $compip | select RemoteAddress,PingSucceeded -WarningAction SilentlyContinue} -ArgumentList $compip
Run Code Online (Sandbox Code Playgroud)

这很好用.我想知道的是如何将以下代码存储到变量中?

Get-Job | Receive-Job | sort RemoteAddress | FT
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它没有像我想的那样工作:

$pcs = Get-Job | Receive-Job | sort RemoteAddress | FT
$pcs.RemoteAddress
Run Code Online (Sandbox Code Playgroud)

我是以错误的方式去做的吗?我想存储get-job上面命令中的数据,以便稍后在脚本中使用这些值.我认为它会工作,因为输出看起来正确:命令:

Get-Job | Receive-Job | sort RemoteAddress | FT
Run Code Online (Sandbox Code Playgroud)

输出:

RemoteAddress PingSucceeded                        
------------- -------------                         
192.168.0.163          True
192.168.0.101          False
192.168.0.2            False
192.168.0.251          True 
Run Code Online (Sandbox Code Playgroud)

powershell

8
推荐指数
1
解决办法
8352
查看次数

PowerShell中的Foreach循环不正常

我正在使用PowerShell的配置文件,并且每次调用foreach循环来捕获数据时,它都会以错误的顺序捕获数据。见下文:

config.ini

[queries]

query01=stuff1

query02=stuff2

query03=stuff3

query04=stuff4
Run Code Online (Sandbox Code Playgroud)

foreach循环:

#Loads an INI file data into a variable
$iniContent = Get-IniContent 'config.ini'
#grabs the hashtable for the data under the [queries] section
$queries = $iniContent['queries']

foreach($query in $queries.GetEnumerator())
{
    write-host $query.name
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

stuff1
stuff4
stuff2
stuff3
Run Code Online (Sandbox Code Playgroud)

我假定这与PowerShell中的异步处理有关,但是config.ini按我将文件存储在其中的顺序来处理文件查询的最佳方法是什么?

注意:我将数字添加到查询(query01)的末尾只是出于测试目的。这些查询将不在我的final中config.ini

编辑:

Get-IniContent 功能:

function Get-IniContent ($filePath)
{
    $ini = @{}
    switch -regex -file $FilePath
    {
        “^\[(.+)\]” # Section
        {
            $section = $matches[1]
            $ini[$section] = @{} …
Run Code Online (Sandbox Code Playgroud)

powershell foreach

2
推荐指数
1
解决办法
2261
查看次数

不支持复制项目失败的给定路径格式

这正驱使我香蕉。我以为我缺少一些愚蠢的东西,但是我尝试了大约10种不同的格式,但没有任何效果。

这是我正在运行的代码:

$today=$(Get-Date -Format o)
$destfile = "C:\SEA-FTP\toFTP\SEAInfo-$today.csv"
$srcfile = "C:\SEA-FTP\temp\QueryCSVTempMstr.csv"
Copy-Item $srcfile -Destination $destfile
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Copy-Item : The given path's format is not supported.
At C:\SEA-FTP\BCP_SQL_Script-v1.0.ps1:53 char:10
+ Copy-Item <<<<  $srcfile -Destination $destfile
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], NotSupportedException
    + FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.CopyItemCommand
Run Code Online (Sandbox Code Playgroud)

我知道Google搜索中有一百万个问题,但看起来我在做他们正在做的事情。对格式有什么想法吗?

powershell copy-item

1
推荐指数
1
解决办法
6240
查看次数

PHP-使用DateInterval添加和减去Days奇怪的错误

我正在尝试使用date_add和在日期中加上和减去#天date_sub,但是得到一些奇怪的结果。我认为这是一个简单的答案,我对PHP并不了解,所以不知道为什么。

这是我的代码:

$y = new DateTime('2016-05-17');
$z2 = 7;
$tempy = $y;
$tempy->sub(new DateInterval('P' . $z2 . 'D'));
$startdate = date_format($tempy, "Y-m-d");
$y->add(new DateInterval('P' . $z2 . 'D'));
$enddate = date_format($y, "Y-m-d");
echo "Start: " . $startdate . "  End: " . $enddate . "\r\n";
Run Code Online (Sandbox Code Playgroud)

结果如下:

Start: 2016-05-10 End: 2016-05-17

看起来,即使我使用一个临时变量$tempy作为开始日期,它仍然会对其进行修改,并且结束日期已关闭。

编辑:预期结果:

Start: 2016-05-10 End: 2016-05-24

php datetime dateinterval

0
推荐指数
1
解决办法
465
查看次数

标签 统计

powershell ×3

copy-item ×1

dateinterval ×1

datetime ×1

foreach ×1

php ×1