我已经编写了以下PowerShell脚本:
当我从我的SSIS包中运行脚本时,我会收到以下错误:
Set-Location D:\folder1\folder2\folder3\folder4;
Get-ChildItem | Rename-Item -NewName {$_.BaseName.insert(19,'loadtime') + (Get-Date -Format HHmm) + $_.Extension};
目标是通过在第19位添加加载时间和时间戳来重命名文件。运行脚本后,会返回以下错误消息:
Rename-Item : The input to the script block for parameter 'NewName' failed.
Exception calling "Insert" with "2" argument(s): "Specified argument was out
of the range of valid values.
Parameter name: startIndex"
At D:\folder1\folder2\folder3\folder4\folder5\RenameFile.ps1:2
char:38
+ Get-ChildItem | Rename-Item -NewName {$_.BaseName.insert(19,'loadtime') +
(Get-D ...
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Archive:PSObject) [Rename-
Item], ParameterBindingException
+ FullyQualifiedErrorId :
ScriptBlockArgumentInvocationFailed,
Microsoft.PowerShell.Commands.RenameItemCommand
当我从我的SSIS包中运行脚本时,我会收到以下错误:
[Execute Process Task] Error: In Executing "PowerShell.exe" "-F D:\folder1\folder2\folder3\folder4\folder5\exec RenameFile.ps1" at "", The process exit code was "-196608" while the expected was "0".
我尝试搜索这个错误信息,但是我找不到任何一个页面讨论这个特定的退出代码。
问题在于,在从PowerShell窗口运行脚本命令时,我仍然会收到错误消息,但文件名确实按预期更改。然而,由于返回了错误,SSIS中的Execute Process任务将失败。
我的问题是,这个错误的原因是什么?我认为这可能与以下事项有关:
{$_.BaseName.insert(19,'loadtime') + (Get-Date -Format HHmm) + $_.Extension};
其中 $.BaseName.insert(19,'loadtime') 和 (Get-Date -Format HHmm) 和 + $.Extension 被视为单独的参数。
我的PowerShell知识不是很丰富,所以这只是我猜测的。
有什么方法可以帮助我消除错误?
提前感谢!