如何在批处理脚本中将字符串拆分为 3 个不同的字符串?

Posted

技术标签:

【中文标题】如何在批处理脚本中将字符串拆分为 3 个不同的字符串?【英文标题】:How do i split a string into 3 different one's in a batch script? 【发布时间】:2021-03-17 05:57:41 【问题描述】:

我已经研究了一段时间的加密程序,我已经弄清楚如何加密文本和内容,但现在我需要恢复它。

我的输出将如下所示: 1.234.23415.513513.135524.111[1234]

句号前的数字是字符或空格, 是我的第一个键,[] 是我的第二个键。 让我很难过的事情是使用 111 和 [1234] 并将它们都设置为它们自己的字符串/变量。这是必需的,所以我可以将其转换回来。

所以我的问题是如何获取字符串: "1.234.23415.513513.135524.111[1234]" 并设置 、[] 和数字之间的值并将它们设置为 3 个不同的字符串?

(不是英语请原谅我糟糕的语法和拼写) (密钥长度不会改变)

【问题讨论】:

for /f "tokens=1-3 delims=[]" %a in ( "1.234.23415.513513.135524.111[1234]") do echo %a %b %c(在批处理文件中使用,将每个%替换为%%。阅读for /f了解它的工作原理和更多信息。(PS:我删除了encryption标记,因为您的问题与加密无关,而是与字符串处理有关。 小心!加密很难正确。聪明的程序员不会将其他人的秘密委托给他们自己编写的加密模块,除非他们的名字是 Bruce Schneier 或 Whit Diffie。 谢谢你们,我也不打算和其他人一起使用它,它只是为了学习技能。我也将其称为加密,因为在我的代码中我使用 2 个密钥将文本转换为数字,然后使用数学运行密钥以生成只能使用密钥计算的文本。 【参考方案1】:

(完全归功于@Stephan) 这不是我的答案,但人们会看答案,而不是 cmets。

for /f "tokens=1-3 delims=[]" %a in ( "1.234.23415.513513.135524.111[1234]") do set "string=%a" & set "key1=%b" & set "key2=%c"

(要在批处理文件中使用,请将每个% 替换为%%。阅读for /f 了解其工作原理和更多信息。)

【讨论】:

以上是关于如何在批处理脚本中将字符串拆分为 3 个不同的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在pyspark中将文件名拆分为两个字符串?

将字符串拆分为新列[重复]

在Java中将字符串拆分为等长的子字符串

在Bash中将字符串拆分为多个变量[重复]

如何在骆驼中将文件拆分为行但以不同方式处理第一行

如何在 Bash 中将字符串拆分为多行?