【问题标题】:DOS BAT Command: How to accept semi-colon as an inputDOS BAT 命令:如何接受分号作为输入
【发布时间】:2011-08-05 09:40:17
【问题描述】:

我在编写 BAT 文件方面相当陌生。因此,我需要创建一个 BAT 文件,它将在其中接受来自命令提示符的用户名和密码,并使用这些值来处理 ORACLE 中的某些 SQL 命令。这很简单,我已经这样做了,它会提示用户输入 ORACLE 用户名、密码和数据库。它们分别是value1、value2和value3。

这里的问题是,ORACLE 密码包含分号。并且当在 CMD 提示符下输入分号时,不知何故该值不正确。例如。密码是“abc;cde”。不知何故,value2 只读作“abc”。有人可以帮忙吗?我曾尝试在提示期间输入双引号,但它仍然是一样的。此外,我宁愿不要让用户在提示期间输入双引号,因为这可能会与实际密码混淆。

请帮忙。

【问题讨论】:

  • 不要将 DOS 与 Windows 中的某些命令解释器混淆。 DOS 是一个操作系统。

标签: oracle command-line batch-file cmd


【解决方案1】:

你的问题有点缺乏细节。

您确定您读取的密码实际上是“;”部分?

我无法从您的问题中判断“;”是否没有读入“value2”,或者它实际上在“value2”中但没有正确传递给 Oracle 客户端。 没有更多的细节是不可能给出正确答案的。

记录在案:

set /P VALUE2=
echo %VALUE2%

将读取包含“;”的文本并将其回显到屏幕上。

【讨论】:

  • 嗨,Tonny,我希望“value2”是“abc;cde”。当我做“value2”的回显时,它显示为“abc”。
  • 它适用于我在 Windows 7 和 2003 服务器 (r2) 上。你在哪个操作系统上?你真的是说 DOS 还是说 CMD shell ?它们看起来一样,但实际上非常不同。
【解决方案2】:

您只能使用 %* 访问 ;,使用 %1%2%<n> 的机器人。

但即便如此,尝试从命令行读取可能包含特殊字符的密码也是一个坏主意,因为不可能访问所有允许/可能的密码。

密码:a&b|c^w%cd% 绝对不能以这种方式访问​​。

我还希望 Tonny 的提示在批处理中使用 set /p 输入密码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    相关资源
    最近更新 更多