小编Den*_*ory的帖子

在远程命令中使用局部变量的问题

我需要编写一个脚本来接收变量并在远程系统上进行共享。

这有效:

Invoke-Command -ComputerName server -ScriptBlock {$a = [WMICLASS]"Win32_Share"; $a.Create("C:\test","test",0)}
Run Code Online (Sandbox Code Playgroud)

但这并没有:

$sharepath = "C:\test"
$sharename = "test"
Invoke-Command -ComputerName server -ScriptBlock {$a = [WMICLASS]"Win32_Share"; $a.Create($sharepath,$sharename,0)}
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来以某种方式传递这些值。

filesystems powershell

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

无法捕获DBI错误

我正在编写一个Perl脚本,无论我尝试什么,我似乎无法捕获DBI错误.我试过这个:

use DBI;

$db = DBI->connect("dbi:ODBC:Driver={SQL Server};Server=localhost;DATABASE=nodepoint;UID=sa;PWD=test;") or print "Something happened.";
Run Code Online (Sandbox Code Playgroud)

还有这个:

use DBI;

eval
{
    $db = DBI->connect("dbi:ODBC:Driver={SQL Server};Server=localhost;DATABASE=nodepoint;UID=sa;PWD=test;");
};
if ($@) { print "Something happened."; }
Run Code Online (Sandbox Code Playgroud)

两者都无法捕获错误,而是在屏幕上显示:

DBI connect('Driver={SQL Server};Server=localhost;DATABASE=nodepoint;UID=sa;PWD=test','',...) failed: [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (SQL-08001) [state was 08001 now 01000]
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (SQL-01000) at C:\dev\test.pl line 5.
Run Code Online (Sandbox Code Playgroud)

这是一个很大的问题,因为在IIS上使用它会500.2 Bad Gateway在看到错误时抛出一个.我需要抓住它,这样我才能显示正确的信息.

iis perl dbi sql-server-2008

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

使用 boto3 在 DynamoDB 中创建“SS”项目

我正在尝试使用 boto3 在 AWS DynamoDB 中创建一个项目,无论我尝试什么,我都无法创建“SS”类型的项目。这是我的代码:

client = boto3.resource('dynamodb', region_name=region)
table = client.Table(config[region]['table'])
sched = {
    "begintime": begintime,
    "description": description,
    "endtime": endtime,
    "name": name,
    "type": "period",
    "weekdays": [weekdays]
}
table.put_item(Item=sched)
Run Code Online (Sandbox Code Playgroud)

其他列工作正常,但无论我尝试什么,weekdays总是以“S”类型结束。作为参考,这是同一张表中其他项目之一的样子:

{'begintime': '09:00', 'endtime': '18:00', 'description': 'Office hours', 'weekdays': {'mon-fri'}, 'name': 'office-hours', 'type': 'period'}
Run Code Online (Sandbox Code Playgroud)

尝试将其转换为 Python 结构显然失败了,所以我不确定如何插入新项目。

amazon-web-services python-3.x amazon-dynamodb boto3

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

捕获 Get-EventLog 错误

我正在编写一个简单的脚本来解析一些事件日志,但当没有结果或实例 ID 无效时,我需要消除一些错误:

PS C:\> get-eventlog Application -instanceid 1111

Get-EventLog : No matches found
At line:1 char:13
  + get-eventlog <<<<  Application -instanceid 1111
      + CategoryInfo          : ObjectNotFound: (:) [Get-EventLog], ArgumentException
      + FullyQualifiedErrorId : GetEventLogNoEntriesFound,Microsoft.PowerShell.Commands.GetEventLogCommand
Run Code Online (Sandbox Code Playgroud)

我可以做到这一点并将其静音,但这也会静音其他错误:

PS C:\> try { get-eventlog Application -instanceid 1111 -erroraction stop } catch { }
Run Code Online (Sandbox Code Playgroud)

我尝试了这个,但它不起作用:

PS C:\> try { get-eventlog Application -instanceid 1111 -erroraction stop } catch [ObjectNotFound] { }

Unable to find type [ObjectNotFound]: make sure that the assembly containing this type is loaded. …
Run Code Online (Sandbox Code Playgroud)

powershell

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

在Perl中排序自定义日期

我有一个哈希,键是日期:

my %dates = (
'May 13, 2015' => 8,
'May 7, 2015' => 1,
'Apr 29, 2015' => 2,
'May 12, 2015' => 1,
'Apr 16, 2015' => 13,
'May 6, 2015' => 1,
);
Run Code Online (Sandbox Code Playgroud)

我正试图按日期对它们进行排序.我尝试了两种方法:

foreach my $k (sort {join('', (split ' ', $a)[2,0,1]) <=> join('', (split ' ', $a)[2,0,1])} keys(%dates)) 
{ print $k . " = " . $dates{$k}; }
Run Code Online (Sandbox Code Playgroud)

由于月份是一个字符串,这不起作用,这:

foreach my $k (sort {join('', (split ' ', $a)[2,0,1]) cmp join('', (split ' ', $a)[2,0,1])} keys(%dates)) …
Run Code Online (Sandbox Code Playgroud)

perl

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

为什么sha1_hex("test")返回的值与Digest :: SHA-> sha1_hex("test")不同?

我很好奇为什么这给出了正确的答案:

use Digest::SHA qw(sha1_hex);
print sha1_hex("test");
Run Code Online (Sandbox Code Playgroud)

但这不是:

use Digest::SHA;
print Digest::SHA->sha1_hex("test");
Run Code Online (Sandbox Code Playgroud)

perl

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

Python:要列出的字符串(不拆分)

我将Python列表保存为这样的字符串表示形式:

a = "['item 1', 'item 2', 'item 3']"
Run Code Online (Sandbox Code Playgroud)

我想将该字符串转换为列表对象。我试图直接加载或使用它,list(a)但它只是拆分字符串的每个字符。我想我可以通过删除第一个字符,删除最后一个字符,基于拆分,然后删除单引号的方式来手动解析它。但是没有更好的方法直接将其转换,因为该字符串可以准确地表示列表看起来像什么?

python

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