我想拆分一个包含多个模式的字符串:
恩.
my $string= "10:10:10, 12/1/2011";
my @string = split(/firstpattern/secondpattern/thirdpattern/, $string);
foreach(@string) {
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
我希望得到一个输出:
10
10
10
12
1
2011
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
我想用逗号分隔的参数调用批处理文件.我怎么能做到这一点?
我希望它像这个例子.
我有一个带脚本的text.bat:
@echo off
set test=%1
echo Sample %test% batch.
Run Code Online (Sandbox Code Playgroud)
我想像这样运行批处理:
c:\text.bat this,is,sample
Run Code Online (Sandbox Code Playgroud)
我期待这样的结果:
Sample this,is,sample batch.
Run Code Online (Sandbox Code Playgroud)
知道我怎么能做到这一点?
谢谢.
我在字符串"11:56:41,11/22/2011"中有这个日期时间格式.
这就是我想要的:
比较两个日期时间字符串,如.
$date1 = "11:56:41, 11/22/2011";
$date2 = "11:20:41, 11/20/2011";
if($date2 < $date1) {
do something...
} else {
do nothing...
}
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么能在perl中实现这一点?
我有一个将执行三个应用程序的Perl脚本.所有这些都有不同的退出代码状态.
第一个应用程序退出代码状态为1.应用程序正常退出,没有任何问题.(成功)
第二个应用程序退出代码状态为99.仍然,应用程序正常退出没有任何问题.(成功)
最后,第三个应用程序退出代码状态为0.与第一个和第二个相同,应用程序正常退出而没有任何问题.(成功)
注意:已将退出代码状态向右移8位.
问题是,如果成功运行,退出代码状态是否总是返回0?
请不要苛刻评论,我只是困惑.请指教.
所以我有这个样本表.包含OS所有互联网商店分支机构的安装数据.
ID ShopName PCName OS
1 Mineski M101 WinXP
2 Mineski M102 WinXP
3 GameCity G201 Win7
4 GameCity G202 Win7
5 CyberBob C301 WinXP
6 CyberBob C302 Win7
Run Code Online (Sandbox Code Playgroud)
我需要查询OS由Shop安装的.
我可以使用此查询执行此操作.
select ShopName, OS
from ShopInv
group by ShopName, OS
Run Code Online (Sandbox Code Playgroud)
预期结果将是:
ShopName OS
CyberBob Win7
CyberBob WinXP
GameCity Win7
Mineski WinXP
Run Code Online (Sandbox Code Playgroud)
但是,我只希望列出每个商店1排.因此,如果OS上面的示例中有超过1行(由于安装的版本不同).我只是想显示混合.
所以结果将是这样的:
ShopName OS
CyberBob Mixed
GameCity Win7
Mineski WinXP
Run Code Online (Sandbox Code Playgroud)
这在SQL Server 2008上是否可行?
注意:我对如何陈述我的问题有点困惑,所以如果你愿意,请编辑它.:)
我有这个RoomTable有价值
SID Room Date APhase BPhase ACount BCount
1 One 10/28/2012 4 5 3 6
2 One 10/29/2012 2 3 -1 -1
3 One 10/30/2012 4 5 7 -1
4 Two 10/28/2012 8 3 2 3
5 Two 10/30/2012 3 5 4 6
6 Three 10/29/2012 5 8 2 -1
7 Three 10/30/2012 5 6 -1 4
8 Four 10/29/2012 6 2 -1 -1
9 Four 10/30/2012 5 8 -1 -1
Run Code Online (Sandbox Code Playgroud)
我想要的是返回以下内容:
我可以使用此查询获得数字1的查询
SELECT Room, sum(APhase) …Run Code Online (Sandbox Code Playgroud) 如何使用perl运行可执行文件?
例如,我想运行一个普通的notepad.exe.我怎么能实现这个目标?
这就是我所拥有的:
my @args = system("notepad.exe");
system(@args) == 0 or die "system @args failed: $?";
Run Code Online (Sandbox Code Playgroud)
但它返回:
Can't spawn "cmd.exe": No such file or directory blah blah blah.
我错过了什么?
我有这个任务需要调查为什么文件的md5值不断变化.
例:
我需要生成某台机器的诊断文件.
生成文件后,它会生成一个.zip文件,比如Diag.zip,它包含该特定机器的所有信息/文件.
在Diag.zip文件中包含一个.xls,比如说,Data.xls包含该特定机器中所有文件的所有摘要,包括文件目录,文件版本,文件大小,创建时间和md5.
然后将Data.xls的所有信息保存在数据库中.
大约一天后,在步骤1-4中再次执行此操作.
然后,当我在2周范围内查询数据库中Data.xls的所有保存数据时,它显示该特定计算机中的几乎所有文件都更改了md5值.
问题是:为什么每次生成新的诊断文件时md5值总是会改变?
我想在本地安装Perl(没有互联网).我的一些工作代码需要添加一些模块才能使其工作(对于全新安装的perl).但在我的情况下,我无法安装模块,因为我没有互联网连接.
是否可以使用Text :: CSV等模块在本地安装Perl?
请指教.
我有以下代码:
my $file = 'c:\test.log';
open (FILE, "<", $file) or die $!;
my @list = grep /\bAdobe\b/, <FILE>;
my $days;
foreach (@list) {
$days = $_;
print "$days\n";
}
Run Code Online (Sandbox Code Playgroud)
预期结果是:
"Adobe","10:10:10, 11/10/2011","Ready"
Run Code Online (Sandbox Code Playgroud)
我想用以下代码用逗号分割结果:
my @sample = split(',', $days);
Run Code Online (Sandbox Code Playgroud)
预期结果是:
"Adobe"
"10:10:10
11/10/2011"
"Ready"
Run Code Online (Sandbox Code Playgroud)
但它不是我想要做的:
我想打印输出如下:
"Adobe"
"10:10:10, 11/10/2011"
"Ready"
Run Code Online (Sandbox Code Playgroud)
如何在不使用/安装任何模块(如Text :: CSV)的情况下实现此目的.
请指教,谢谢.
perl ×6
split ×2
sql ×2
sql-server ×2
batch-file ×1
comma ×1
database ×1
executable ×1
exit-code ×1
exitstatus ×1
md5 ×1
regex ×1
return-code ×1
status ×1
string ×1