使用 OdiOSCommand 执行 powershell 脚本

Executing powershell script using OdiOSCommand

我创建了一个批处理文件,它首先调用 cmd,然后它应该调用 powershell,读取特定文件,并创建一个将其编码为 UTF-8 的新文件。手动执行此脚本效果很好。

Oracle Data Integrator 支持 OSCommand,因此我使用该元素来调用我为此目的(自动化原因)创建的批处理脚本。您可以在下面找到批处理脚本的代码:

cmd 
powershell
"Get-Content D:\mrapateatrit\SOURCE_FILES\Puntoret.txt | Set-Content -Encoding utf8 D:\mrapateatrit\SOURCE_FILES\Puntoret_utf8.txt"
exit;

当我执行调用此脚本的 ODI 包时,它会将此输出到文件:

C:\Users\lori\Desktop>cmd  
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\lori\Desktop>

这意味着它在代码中只是调用cmd,而不是读取powershell命令。 该元素可以采用的一些参数:

Command to execute: I provided the path of the batch script
Output file directory: path provided
Error file directory: Error file path provided
Working directory: desktop path provided

如果有人可以帮助我创建通过 ODI 调用该脚本的理想方式,那将非常有帮助

使用下面的代码解决了这个问题: cmd /c C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "Get-Content D:\mrapateatrit\SOURCE_FILES\Puntoret.txt | Set-Content -Encoding utf8 D:\mrapateatrit\SOURCE_FILES\Puntoret_utf8.txt"