我有一个奇怪的问题,我有一个非常简单的功能。
这是我的 PowerShell 代码
$exclude = @()
function GetOracleDb {
param([string]$servername)
$exclude += $servername
}
GetOracleDb "Myserver2"
$exclude
Run Code Online (Sandbox Code Playgroud)
为什么我的 $exclude 数组是空的?
谢谢你的帮助
我有一个奇怪的问题,这是我的CSV:
Serveur;Carte;Cordon;IP;Mac;Vmnic ;Vmnic mac;Connect;Port
Dexter;eth1;405;172.16.5.117;00:24:e8:36:36:df;Vmnic0;00:50:56:56:36:df;sw-front-1;A1
Dexter;eth2;14;192.168.140.17;00:24:e8:36:36:e1;Vmnic1;00:50:56:56:36:e1; sw_eq_ds_1;3
;;;;;;;;
Gordon;eth1;404;172.16.5.124;b8:ac:6f:8d:ac:b4;Vmnic0;00:50:56:5d:ac:b4;;
Gordon;eth2;35;192.168.140.114;b8:ac:6f:8d:ac:b6;Vmnic1;00:50:56:5d:ac:b6;;
Gordon;eth3;254;192.168.33.10;b8:ac:6f:8d:ac:b8;Vmnic2;00:50:56:5d:ac:b8;;
Run Code Online (Sandbox Code Playgroud)
所以我使用以下代码将其导入数组:
$Serveur = @()
Import-Csv C:\Users\aasif\Desktop\myfile.csv -Delimiter ";" |`
ForEach-Object {
$Serveur += $_.Serveur
}
Run Code Online (Sandbox Code Playgroud)
要删除重复值,我这样做:
$Serveur = $Serveur | sort -uniq
Run Code Online (Sandbox Code Playgroud)
因此,当我显示我的数组时,我获得了这两个值:Dexter和Gordon以及第三个空值
但我也得到一个空值
以下代码返回3
$Serveur.count
Run Code Online (Sandbox Code Playgroud)
为什么?
谢谢你的帮助
这是我的代码,非常简单:
$TargetFolder = 'M:\'
try{
$Getfolderlist = Get-ChildItem $TargetFolder -Recurse | ? { $_.PSIsContainer -and $_.Name -eq 'old' }
}catch {
Write-Host "Error ! :) "
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,我得到一个PowerShell异常:
Get-ChildItem : Cannot find drive. A drive with the name 'M' does not exist.
At C:\ef-scripts\PurgeDeliveryZip\purge_delivery_zip.ps1:23 char:18
+ $Getfolderlist = Get-ChildItem $TargetFolder -Recurse | ? { $_.PSIsContainer -an ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (M:String) [Get-ChildItem], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
这是我的powershell代码:
[void][System.Reflection.Assembly]::LoadFile("C:\DLL\Oracle.ManagedDataAccess.dll")
$OracleConnexion = New-Object Oracle.ManagedDataAccess.Client.OracleConnection('User Id=test;Password="test";Data Source=10.2.2.1/TEST')
$TimeOut = 60
$OracleConnexion.Open()
$Query=$OracleConnexion.CreateCommand()
$Query.CommandText="Select * FROM TEST"
$Query.CommandTimeout = $Timeout
$ExecuteRequete=$Requete.ExecuteReader()
while ($ExecuteRequete.Read()) {
$SiebelLastRecord += $ExecuteRequete.GetDateTime(0).ToString()
}
$OracleConnexion.Close()
Run Code Online (Sandbox Code Playgroud)
所以我打开ODP.NET连接$OracleConnexion.open()然后关闭它$OracleConnexion.close()是否足以正确关闭我与Oracle数据库的连接?或者我应该使用$OracleConnexion.Dispose()?
我通过任务调度程序每隔5分钟执行一次PowerShell ...所以也许我应该使用Dispose()来避免内存饱和?
c# powershell odp.net powershell-3.0 oracle-manageddataaccess
这是我的字符串
$mystring = "INSERT INTO `glpi_networkports` (`entities_id`,`is_recursive`,`items_id`,`itemtype`,`comment`,`logical_number`,`name`,`networkinterfaces_id`,`ip`,`mac`,`netmask`,`gateway`,`subnet`,`netpoints_id`)"
Run Code Online (Sandbox Code Playgroud)
我怎能忽略逃脱?
因为它给了我这样的字符串:
INSERT INTO glpi_networkports (entities_id,is_recursive,items_id,itemtype,comment,logical_number,
ame,
etworkinterfaces_id,ip,mac,
etmask,gateway,subnet,
etpoints_id)
Run Code Online (Sandbox Code Playgroud)
谢谢
这是我的代码:
Function CleanUpOracle
{
if ($Requete)
{
$Requete.Dispose()
}
if ($ExecuteRequete)
{
$ExecuteRequete.Dispose()
}
if ($Transaction)
{
$Transaction.Dispose()
}
if ($OracleConnexion)
{
$OracleConnexion.close()
$OracleConnexion.Dispose()
}
if ($Log.id)
{
$Log.PSObject.Properties.Remove('id')
}
}
Run Code Online (Sandbox Code Playgroud)
我正在测试是否存在变量 {do something}
但是在将来我会测试很多变量,我不想拥有数百行.
我该如何优化呢?也许用开关但怎么样?
谢谢 !
这是我的阵列:
eth1
eth12
eth5
eth11
Run Code Online (Sandbox Code Playgroud)
当我的字符串包含1到9之间的数字时,我想在之前添加0,以获得如下数组:
eth01
eth12
eth05
eth11
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这一目标?我不知道如何修改这样的字符串:/
谢谢