我怎样才能得到一个字符串旁边的另一个字符串? [复制]

Posted

技术标签:

【中文标题】我怎样才能得到一个字符串旁边的另一个字符串? [复制]【英文标题】:How can I get a string that is next to another string? [duplicate] 【发布时间】:2019-12-29 12:19:32 【问题描述】:

我正在创建一个批处理程序,您需要将参数传递给它。 尽管使用我当前的代码,您必须以某种方式传递参数。 我可以解决这个问题的方法是在参数旁边添加一行文本。 这就是我想要的:

batch.bat -arg2 arg -arg1 arg
                 ^         ^
                 |         |
              Need This Need This

【问题讨论】:

那么batch.bat 将看到您所需的参数为%2-arg2 之后的字符串),和%4(@987654326 之后的字符串@),这是你想知道的吗?或者还有什么你想要的吗?另外您可能对Shift 命令感兴趣,请打开命令提示符窗口并输入shift /? 以阅读其使用信息。 好的,这是我的问题:我的批处理文件有 2 个不同的参数,比如说 -1 和 -2。这两个参数是必需的,但用户可能会弄​​乱顺序,这将使我的批处理文件以一种奇怪的方式表现。例如,batch.bat -1 arg1 -2 arg2。它们的顺序正确。但是batch.bat -2 arg2 -1 arg1?它会使我的批处理文件以一种奇怪的方式表现。希望这会有所帮助。 您应该在 batch.bat 的顶部创建一个验证例程来确定每个单独的参数,对它们进行适当的排序,或者在我看来,退出脚本并返回消息给最终用户告诉他们如何他们需要输入他们的论点。 如果您的最终用户无法遵循基本方案来运行带参数的脚本,则不应允许他们使用命令行! 本网站不是免费的脚本编写服务,因此由您负责提供代码,以及我们的代码来帮助您修复它,鉴于您对运行时发生的情况的完整解释 【参考方案1】:

这是一个可以使用的骨架。如果您不信任您的用户,则必须添加一些预防措施(例如检查参数是否成对出现,或者一对中的第一个参数是否以 - 开头而第二个不是)

@Echo Off
setlocal
:loop
if "%~2" == "" goto :continue
set "%~1=%~2"
shift
shift
goto :loop
:continue
REM check the parameters:
set - 2>nul

试试

batch.bat -arg2 world -arg1 hello

替代语法(不改变代码):

batch.bat -arg2=world -arg1=hello

(用户可能更容易理解)

【讨论】:

以上是关于我怎样才能得到一个字符串旁边的另一个字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能在这个程序中得到正确的输出?

我怎样才能得到我的记忆快照

我怎样才能获得将在其中绘制子字符串的绑定矩形?

根据键名从 HashMap 获取字符串值

我在使用CSocket::Send(字符,长度);发送数据的时候,怎样把握长度的设置?怎么才能得到长度的最大值?

美丽的汤,get_text 但不是 <span> 文本.. 我怎样才能得到它?