【发布时间】:2019-01-23 17:15:22
【问题描述】:
当我从 Command Prompt Window 执行一个 powershell 脚本文件时,该文件就消失了。 CMD 窗口不显示任何错误消息,它只是在执行命令后立即转到下一行。我从备份中恢复文件。
当我从 Power Shell Window 执行 powershell 脚本文件时,该过程成功完成。
当我尝试使用 Execute Process Task in SSIS 时,我最初注意到该文件已消失,如 SQL Server Central: execute+process+task 和 MSDN Blog Article: run-powershell-scripts-in-ssis 上的帖子所示。
文件消失的原因是什么?
.PS1 文件刷新带有数据连接的 excel 文件并保存文件。
Power Shell,命令测试(只有第一个失败,其他 3 个有效)
PS H:\> "PowerShell.exe" "-F C:\SVN\BusinessAnalysts\ExcelTools\DatabaseSSAS_UsageStats.xlsx_ExcelRefresh.ps1"
Unexpected token '-F C:\SVN\BusinessAnalysts\ExcelTools\DatabaseSSAS_UsageStats.xlsx_ExcelRefresh.ps1' in expression
statement.
At line:1 char:103
+ "PowerShell.exe" "-F C:\SVN\BusinessAnalysts\ExcelTools\DatabaseSSAS_UsageStats.xlsx_ExcelRefresh.ps1" <<<<
+ CategoryInfo : ParserError: (-F C:\SVN\Busin...xcelRefresh.ps1:String) [], ParentContainsErrorRecordEx
eption
+ FullyQualifiedErrorId : UnexpectedToken
PS H:\> powershell -noexit C:\SVN\BusinessAnalysts\ExcelTools\DatabaseSSAS_UsageStats.xlsx_ExcelRefresh.ps1
PS H:\> PowerShell.exe -F C:\SVN\BusinessAnalysts\ExcelTools\DatabaseSSAS_UsageStats.xlsx_ExcelRefresh.ps1
PS H:\> PowerShell.exe -File C:\SVN\BusinessAnalysts\ExcelTools\DatabaseSSAS_UsageStats.xlsx_ExcelRefresh.ps1
PS H:\>
命令提示符,命令测试(文件消失)
PowerShell.exe -File C:\SVN\BusinessAnalysts\ExcelTools\DatabaseSSAS_UsageStats.xlsx_ExcelRefresh.ps1
PowerShell_Exec_FileDisappears.png
【问题讨论】:
-
这是(自然)不正常的行为。它必须与脚本中发生的事情有关。我们不能不看就知道。可能是你的杀毒软件把它删了?
-
@marsze - 怎么可能是脚本?当在 Powershell 中手动输入行时,scripts 运行良好。 PS1 脚本文件 在通过 powershell 运行时运行良好。 PS1 脚本文件 通过命令行运行时执行是唯一的问题...文件被删除。感谢您对防病毒的想法;有什么方法可以调查这种可能性吗?我们的组织使用卡巴斯基进行杀毒。
-
验证非常简单:您是否尝试将脚本的内容更改为简单的内容,例如 echo 命令,然后再试一次?我想它不应该被删除。您可以使用该技术来缩小问题范围。
-
您是否尝试过其他脚本名称/路径等?尝试缩小问题的范围。我无法真正提供帮助,因为我无法重现此内容。
-
我现在可以重现它了。它似乎与文件名中的点有关(来自“.xlsx”)。有趣的是,如果你去掉这个点,它就会起作用。更有趣的是:如果将“.xlsx”替换为“.ps1”inside 文件名,它也可以工作。这似乎几乎是 PowerShell 或 CMD 中的错误。我会进一步调查。
标签: powershell cmd