我需要编写一个脚本来接收变量并在远程系统上进行共享。
这有效:
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)
我需要一种方法来以某种方式传递这些值。
我正在编写一个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在看到错误时抛出一个.我需要抓住它,这样我才能显示正确的信息.
我正在尝试使用 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 结构显然失败了,所以我不确定如何插入新项目。
我正在编写一个简单的脚本来解析一些事件日志,但当没有结果或实例 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) 我有一个哈希,键是日期:
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) 我很好奇为什么这给出了正确的答案:
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) 我将Python列表保存为这样的字符串表示形式:
a = "['item 1', 'item 2', 'item 3']"
Run Code Online (Sandbox Code Playgroud)
我想将该字符串转换为列表对象。我试图直接加载或使用它,list(a)但它只是拆分字符串的每个字符。我想我可以通过删除第一个字符,删除最后一个字符,基于拆分,然后删除单引号的方式来手动解析它。但是没有更好的方法直接将其转换,因为该字符串可以准确地表示列表看起来像什么?