问题标签 [powershell-ise]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 尝试使用 $ 变量参数化命令时出错
我正在尝试使用以下代码片段执行命令:
但是,这样做会导致以下错误消息:
我也试过
但现在这给了我
但至少命令运行了,但它似乎没有收到我发送给它的任何参数......我猜我在这里忽略或未能掌握 PowerShell 的基本概念。我哪里出错了?
powershell - 从当前目录获取子文件夹中文件的相对路径
是否有任何直接的方法(通过使用 cmdlet 或 .NET 类)从给定路径仅获取子文件夹中文件的相对路径?
例如,当前文件夹是C:\MyScript
,并且有一个用文件调用的子文件夹Data
,Test.txt
所以我想查看Data\Test.txt
而不是C:\MyScript\Data\Test.txt
powershell-ise - 是什么导致了这个无用的 Powershell ISE 错误消息?
我正在尝试将 Powershell ISE 用作控制台应用程序,但收效甚微。Comskip 是一个命令行工具,我有一个 AHK 脚本执行 Comskip 商业广告通常通过cmd.exe
. 工作正常,但最近我开始在文件名中使用 Unicode 字符(星级),众所周知,这些字符在控制台中的显示效果不会特别好。
调查使我找到了应该支持 Unicode 的 Powershell ISE。从 ISE 运行 Comskip 被证明是相当具有挑战性的。如果手动输入所有内容,它可以正常工作,但是从另一个脚本调用它时问题就开始了。
现在有问题的部分是,如果使用调用普通 Powershell 控制台的代码一切正常。但是调用 ISE 的相同代码失败了,我不明白为什么。你们中的任何一个都可以吗?我收到的错误消息没有给出任何关于出错的明确线索。错误信息只说:
用法:
powershell_ise.exe
或powershell_ise.exe fileName.ps1
调用 ISE 的 AHK 线路如下所示:
现在,如果使用 Powershell 控制台,同样的代码可以正常执行:
我怎么会得到这些异常?
powershell - Powershell 错误在 ISE 中正确输出,但在命令行执行中没有
我在 powershell ISE 中运行的命令退出了我的预期,但是当我将代码移动到命令行以在不同的环境中执行时,我不再收到错误。该错误仅发生在 ISE 中。我曾尝试像其他人发布的那样在命令行上使用 -sta,但没有运气。
当我通过 ISE 运行它时,我得到以下输出:
当我在命令行上运行该命令时,我得到以下输出:
如您所见,我正在尝试检查返回代码并在 ISE 中获得正确的操作,但没有通过命令行获得正确的结果。
我想知道 Windows 在 ISE 中运行时是否使用了不同的环境变量。我注意到当我通过 ISE 运行它时,控制台以红色显示错误。
powershell - 在 powershell 中查找和替换
我的文本文件如下所示:
我不想做的,编辑这个文件,只改变Set PRGVER="V1.0.12"
一个新的数字,像这样Set PRGVER=V1.0.13"
。
什么时候开始 PS 脚本,我不知道整个字符串,. 之间的数字""
。
我只知道,找到字符串变量:Set PRGVER=""
。
如何仅替换 之间的第一个值""
?
powershell - Copy-Item / Remove-Item 仅没有根文件夹的子内容?
嗨,我正在努力解决以下问题 - 假设我有以下目录结构 C:\Temp\Test1 和 C:\Temp\Test2
我想做的是递归地将 C:\Temp\Test1 的子内容复制到 C:\Temp\Test2 而不复制实际文件夹 C:\Temp\Test1 ..如果我现在使用命令
将导致 C:\Temp\Test2\Test1 并且没有参数组合似乎可以缓解问题
同样,当我希望删除 C:\Temp\Test2 中的所有子内容时,我希望只删除子内容而不是实际文件夹,例如
正在删除 \Test2 文件夹。我已经尝试了这么多的参数变化 - 我怎样才能完成我想要做的事情?
powershell - 我可以使 PowerShell $error 对象在脚本和交互模式下的行为一致吗?
我正在编写一个$error
用于检测和响应错误的 PowerShell 脚本。我的问题是,$error
根据我运行脚本的方式,我会得到不同的对象行为。如果我以交互方式运行它(特别是从 PowerShell ISE),则会将错误添加到集合中,但如果我从命令行运行相同的脚本,则会发生相同的错误,但不会添加到集合中。
这是脚本(简化以说明问题):
当我从 PowerShell ISE 运行它时,它的行为符合预期。SQLCMD 引发一个非终止错误,该错误被捕获和处理。这是输出:
但是当我从命令行运行它时,就像我要设置一个计划任务一样,没有任何内容被添加到$error
,并且没有引发异常。这是输出:
如果我从 powershell 命令行而不是 cmd.exe(这是有道理的)运行脚本文件,我也会得到相同的结果。例如:
我怀疑这与执行上下文有关,或者可能与我仍然不太了解的解析器模式有关,甚至可能与我的个人资料有关(尽管到目前为止,我一直在同一台 PC 上运行同一帐户下的所有内容) . 我在网上看到了很多使用这种基本方法的示例try/catch
with $ErrorActionPreference = "Stop"
,所以看起来我应该能够完成这项工作。
所以我的问题本质上是:我可以让这个脚本像我认为的那样工作吗?如果不是,我有什么误解?我如何捕捉到这些类型的错误?如果有帮助,我不需要对此进行超级详细的异常处理,我只需要知道什么时候出现问题,以便我的任务监视器可以提醒我。powershell.exe 的非零返回码就足够了。
我正在研究使用$?
, 和$LASTEXITCODE
,但我打赌$?
会遇到与 , 相同的问题$error
,并且两者都只适用于执行的最后一条语句,这不太理想,因为我的真实脚本比这个例子长得多。
编辑:
好的,我已经了解到 Windows 可执行文件(例如 sqlcmd)永远不会向$error
集合中添加任何内容,即使它们返回非零退出代码。$error
如果我理解正确,仅由 cmdlet 使用。$LASTEXITCODE
尽管我也可以使用,但我的脚本通过重复使用来工作$?
,因为它可以识别 Windows 可执行退出代码,并且对于非零值设置为 false。
总而言之,从命令行运行脚本时的行为是正确的、预期的行为。不过,我仍然不知道为什么我从 PowerShell ISE 得到不同的结果。
powershell-2.0 - 无法在 PowerShell 中创建函数
我正在尝试使用本教程在我的 PowerShell ISE 中添加一个菜单项。
但由于某种原因,我收到此错误:
我运行 Windows 7 Enterprise 并以管理员身份运行 PowerShell ISE...
对这个问题有什么想法吗?
powershell-ise - Powershell 调试事件 -Action 代码块
我有脚本在特定目录中监视文件创建。我在创建 System.IO.FileSystemWatcher 后使用 Register-ObjectEvent,
它工作得很好,但是如果我在 -Action 代码块中设置断点,IDE 会生成:
警告:'D:\My Stuff\Desktop\scripts\fileWatcher.ps1:15' 上的断点行断点不会被命中
此消息在我将文件放入我正在观看的目录后立即发生,并且我可以看到我的 Write-Host 在上述“警告”之后立即打印出我的消息。
这是正常的吗?
我需要添加更多代码并且可以真正使用调试器。我应该怎么做,这样我才能调试这个代码块?
sqlite - 如何从 PowerShell ISE 运行像 SQLite 这样的 shell?
我想用 sqlite3.exe 做一些事情,sqlite3 命令行 shell。导航到 PowerShell ISE 中的目录后,我运行程序.\sqlite3.exe
并从 SQLite 获得预期的输出:
但是,如果我尝试.help
在此之后键入或任何其他命令,则不会发生任何事情,并且底部任务栏会显示“已在运行命令。请稍候。”。当然,没有什么可等待的,因为显然 sqlite3.exe 正在等待我的输入。
在此之后,我无法让 PowerShell ISE 响应任何进一步的命令,除非我使用 Ctrl+Break 退出 SQLite。
怎么了?