如何从自动化字符串中删除空格以导出到 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,但没有尽我所能 Tee
、Write-Out
或 Out-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"
解释为字符数组,并将给定字符串拆分为 任何 个字符("
、.
、f
、i
、t
)。以这种方式拆分字符串 100838953_180130001.tif
会得到一个包含 5 个元素的数组,其中最后 4 个是空字符串:
[ '100838953_180130001', '', '', '', '' ]
通过使用输出字段分隔符 ($OFS
) 连接它的元素,将带有该数组的变量放入一个字符串中,将数组变成一个字符串,默认情况下它是一个 space,因此生成您观察到的尾随 spaces。
要从文件名中删除前缀 cns..._
和子字符串 _tiff
以及扩展名 .tif
,请使用以下命令:
$shortname = $longname -replace '^cns\d*_|_tiff|\.tif$'
正则表达式替换将删除字符串开头的子字符串 "cns",后跟任意数字和下划线 (^
),子字符串“_tiff”字符串,以及字符串末尾的子字符串“.tif”($
).
这是从 Windows 18_3 版本的 Linux 到加载了 Microsoft 模块的 PowerShell 5.1 上的 SQLPlus 12c 命令的自动化。
我需要清除字符串的白色 space 以在自动化 Select 脚本上输入通配符数据(最终脚本将找到丢失的 TIFF 图像并重新插入)。
我无法删除 tee
.
最近的尝试在post 但是我已经尝试了Trim
, Split
, Replace
, Remove
, Substring
, >>
, Write-Host -NoNewline
,...我很亲近。
当我 Write-Host -NoNewline
我成功删除了 CRLF,但没有尽我所能 Tee
、Write-Out
或 Out-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"
解释为字符数组,并将给定字符串拆分为 任何 个字符("
、.
、f
、i
、t
)。以这种方式拆分字符串 100838953_180130001.tif
会得到一个包含 5 个元素的数组,其中最后 4 个是空字符串:
[ '100838953_180130001', '', '', '', '' ]
通过使用输出字段分隔符 ($OFS
) 连接它的元素,将带有该数组的变量放入一个字符串中,将数组变成一个字符串,默认情况下它是一个 space,因此生成您观察到的尾随 spaces。
要从文件名中删除前缀 cns..._
和子字符串 _tiff
以及扩展名 .tif
,请使用以下命令:
$shortname = $longname -replace '^cns\d*_|_tiff|\.tif$'
正则表达式替换将删除字符串开头的子字符串 "cns",后跟任意数字和下划线 (^
),子字符串“_tiff”字符串,以及字符串末尾的子字符串“.tif”($
).