如何从自动化字符串中删除空格以导出到 SQLPlus SELECT 命令 LockedOut.sql 文件

HOWTO remove whitespace from an automation string to export to a SQLPlus SELECT command LockedOut.sql file

这是从 Windows 18_3 版本的 Linux 到加载了 Microsoft 模块的 PowerShell 5.1 上的 SQLPlus 12c 命令的自动化。 我需要清除字符串的白色 space 以在自动化 Select 脚本上输入通配符数据(最终脚本将找到丢失的 TIFF 图像并重新插入)。 我无法删除 tee.

之前的白色 space

最近的尝试在post 但是我已经尝试了Trim, Split, Replace, Remove, Substring, >>, Write-Host -NoNewline,...我很亲近。

当我 Write-Host -NoNewline 我成功删除了 CRLF,但没有尽我所能 TeeWrite-OutOut-File 删除内容。

#Add-Type -AssemblyName System.Data.OracleClient
$filefolder = "C:\EMSCadre\iGateway\clint\Input_Images\"
$Files = Get-ChildItem $FileFolder -Name -File
$longname = $Files.Get(2)
$shortname = $longname.Replace("_tiff","").Replace("cns","").Substring(9).Split('".tif"')
echo "select LD_CASE_NUMBER FROM LOG_data where ld_message_3 like %$shortname%" |
    tee -Verbose c:\scripts\input\lockedout_test.sql
type c:\scripts\input\lockedout_test.sql

#Failed attempts
#echo "select LD_CASE_NUMBER FROM LOG_data where ld_message_3 like %($shortname1.TrimEnd('_',"")%" |
#  tee -Verbose c:\scripts\input\lockedout_test.sql

显示白色的最新结果space 秒前 %:

select LD_CASE_NUMBER FROM LOG_data 其中 ld_message_3 喜欢 %100838953_180130001 %
select LD_CASE_NUMBER FROM LOG_data 其中 ld_message_3 喜欢 %100838953_180130001 %

有助于解决问题的详细信息:

PS C:\scripts> $文件
2823910000.tif
2823910002.tif
cns20180827_100838953_180130001_tiff.tif
exposureworks-dynamic-range-test-f16-graded-TIFF-RGB-parade.jpg

PS C:\scripts> $shortname
100838953_180130001

在我看来像是声明的最后一步 (Split())

$longname.Replace("_tiff","").Replace("cns","").Substring(9).Split('".tif"')

应该从文件名中删除扩展名。 Split() 不是这样工作的。该方法将字符串 ".tif" 解释为字符数组,并将给定字符串拆分为 任何 个字符(".fit)。以这种方式拆分字符串 100838953_180130001.tif 会得到一个包含 5 个元素的数组,其中最后 4 个是空字符串:

[ '100838953_180130001', '', '', '', '' ]

通过使用输出字段分隔符 ($OFS) 连接它的元素,将带有该数组的变量放入一个字符串中,将数组变成一个字符串,默认情况下它是一个 space,因此生成您观察到的尾随 spaces。

要从文件名中删除前缀 cns..._ 和子字符串 _tiff 以及扩展名 .tif,请使用以下命令:

$shortname = $longname -replace '^cns\d*_|_tiff|\.tif$'

正则表达式替换将删除字符串开头的子字符串 "cns",后跟任意数字和下划线 (^),子字符串“_tiff”字符串,以及字符串末尾的子字符串“.tif”($).