小编dls*_*dls的帖子

从Windows cmd.exe更改Perl目录

根据手册,chdir ,如果可能的话,将工作目录更改为EXPR.

从cmd.exe执行时,此脚本:

my $path = 'C:\\some\\path\\';
print "$path\n";
chdir("$path") or die "fail $!";
Run Code Online (Sandbox Code Playgroud)

结果输出:

C:\some\path\
Run Code Online (Sandbox Code Playgroud)

但是当我返回命令提示符时 - 我仍然在原始目录中.我误解了chdir的目的吗?

perl cmd chdir

4
推荐指数
2
解决办法
3573
查看次数

如何在Perl中求和大十六进制值?

我正在迭代一组32位十六进制字符串("DEADBEEF","12345678"等),我试图将它们加在一起形成一个32位校验和.假设变量$temp在下面的示例中加载了一些十六进制字符串.

my $temp;
my $checksum;

for (...)
{
    #assume $temp is loaded with a new hex string here
    my $tempNum = hex ($temp);
    $checksum += $tempNum;
    $checksum &= 0xFFFFFFFF;
    print printf("checksum: %08X",$checksum);
}
Run Code Online (Sandbox Code Playgroud)

前几个值是"7800798C","44444444"和"44444444".输出是:

校验和:7800798C
校验和:BC44BDD0
校验和:FFFFFFFF
校验和:FFFFFFFF

等等..

你可以看到前两个总结是正确的,然后它似乎饱和.我错过了关于Perl变量大小限制的内容吗?

编辑:这是脚本的实际输出(字符串是十六进制字符串,值是该字符串的十进制转换,校验和是结果输出):

string: 7800798C, value: 2013297036, checksum 7800798C
string: 44444444, value: 1145324612, checksum BC44BDD0
string: 44444444, value: 1145324612, checksum FFFFFFFF
string: 44444444, value: 1145324612, checksum FFFFFFFF
string: 78007980, value: 2013297024, checksum FFFFFFFF
string: 44444444, value: 1145324612, checksum FFFFFFFF

perl hex checksum

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

Windows XP批处理文件concat

我正在努力完成以下荒谬的任务:

我有一个包含一组完全限定文件名的文本文件.我想迭代文件并将每一行追加到一个公共变量,该变量可以传递给命令行工具.例如,该文件可能是:

C:\目录\ test.txt的

C:\ WINDOWS \的test2.txt

C:\ text3.txt

我想把它们分配给一些变量'a',这样:

a = "C:\dir\test.txt C:\WINDOWS\test2.txt C:\text2.txt"
Run Code Online (Sandbox Code Playgroud)

第二个问题是 - 什么是好的批处理文件引用?我在Windows材料和许多本土网站中找到了一些东西,但没有什么特别完整的.

cmd concat batch-file text-files windows-console

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

从2D列表创建python条件列表

说我有一份清单清单.说三个元素的内部列表大小,如下所示:

['apple', 'fruit', 1.23]
Run Code Online (Sandbox Code Playgroud)

外部列表看起来像这样

data = [['apple', 'fruit', 1.23],
        ['pear', 'fruit', 2.34],
        ['lettuce', 'vegetable', 3.45]]
Run Code Online (Sandbox Code Playgroud)

我想迭代外部列表并仅在元素1匹配某个关键字(aka:'fruit')的情况下为临时列表剔除数据.所以,如果我匹配水果,我最终会得到这个:

tempList = [('apple', 1.23), ('pear', 2.34)]
Run Code Online (Sandbox Code Playgroud)

这是实现此目的的一种方法:

tempList = []
for i in data:
   if i[1] == 'fruit':
      tempList.append(i[0], i[2])
Run Code Online (Sandbox Code Playgroud)

是否有一些'Pythonic'的方法可以用更少的线来做到这一点?

python list

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

标签 统计

cmd ×2

perl ×2

batch-file ×1

chdir ×1

checksum ×1

concat ×1

hex ×1

list ×1

python ×1

text-files ×1

windows-console ×1