PowerShell 要求输入值

Posted

技术标签:

【中文标题】PowerShell 要求输入值【英文标题】:PowerShell Asking to Enter Value 【发布时间】:2018-11-21 19:11:54 【问题描述】:

我有一个测试 SQL 脚本,我正在尝试使用 SQLPlus 在 PowerShell 中运行。脚本的路径如下所示:

@C:\&DI\test.sql

当我运行它时,我得到提示

Enter value for di:

如果我输入 &DI,一切正常。我宁愿避免任何提示。我尝试了一堆不同的引号组合,但没有任何运气。有人有什么想法吗?

【问题讨论】:

How to escape ampersands, semicolons, and curly braces in command-line powershell params?的可能重复 【参考方案1】:

您看到的是 SQL*Plus 提示,而不是 PowerShell 提示。

默认情况下,SQL*Plus 使用 & 来标识 substitution variables。当它看到@C:\&DI 时,它会查找一个名为DI 的已定义替换变量,并且因为它没有找到一个 ir 会提示您。

您可以更改它使用的字符,或者只是禁用该功能,发出:

set define off

在您的 @ 运行命令之前。

SQL> @C:\&DI\test.sql
Enter value for di: xyz
SP2-0310: unable to open file "C:\xyz\test.sql"
SQL> set define off
SQL> @C:\&DI\test.sql
SP2-0310: unable to open file "C:\&DI\test.sql"
SQL>

Read more.

【讨论】:

以上是关于PowerShell 要求输入值的主要内容,如果未能解决你的问题,请参考以下文章

从Powershell中的文本文件中输入值

如何从 C# 程序运行 PowerShell 脚本?

使用 PowerShell 以管理员身份运行命令?

这个powershell程序中最大的文件? [关闭]

在 PowerShell 中合并哈希表:如何?

如何在 PowerShell 中要求命令行参数(不是参数)?