powershell - 如何从自动化字符串中删除空格以导出到 SQLPlus SELECT 命令 LockedOut.sql 文件
问题描述
这是从 PowerShell 5.1 上的 Windows 18_3 版本到 Linux 上的 SQLPlus 12c 的命令的自动化,其中加载了 Microsoft 模块。我需要清除字符串的空白以在自动化选择脚本上输入通配符数据(最终脚本将找到丢失的 TIFF 图像并重新插入它)。我无法删除tee
.
最新的尝试在帖子中,但我已经尝试过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
显示最后一个空格的最新结果%
:
选择 LD_CASE_NUMBER FROM LOG_data where ld_message_3 like %100838953_180130001 % 选择 LD_CASE_NUMBER FROM LOG_data where ld_message_3 like %100838953_180130001 %
帮助排除故障的详细信息:
PS C:\脚本> $文件 2823910000.tif 2823910002.tif cns20180827_100838953_180130001_tiff.tif 曝光工程-动态范围-测试-f16-分级-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
) 将其元素连接起来,将数组拆分为字符串,默认情况下,该分隔符是一个空格,从而产生您观察到的尾随空格。
要从文件名中删除前缀cns..._
和子字符串_tiff
以及扩展.tif
名,请使用以下命令:
$shortname = $longname -replace '^cns\d*_|_tiff|\.tif$'
该正则表达式替换将删除字符串开头的子字符串“cns”,后跟任意数量的数字和下划线(^
),字符串中任何位置的子字符串“_tiff”,以及结尾的子字符串“.tif”一个字符串 ( $
)。
推荐阅读
- for-loop - Terraform - 地图列表中的 foreach 地图列表
- c - 带有 Valgrind 错误的分段错误“大小为 4 的无效读取”
- python - python中的裸体检测
- java - 无法使用 url.openStream() 读取某些地址
- python - 如何移动带有 numpy 数组的棋子?
- flutter - 如何在颤动中设置图像的对比度、色调和亮度
- odbc - ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/simba/spark/lib/64/libsparkodbc_sb64.so' : file not found (0) (SQLDriverConnect)")
- python - PermissionError: [Errno 13] 使用 WSL2 和 Docker 在 Windows 上拒绝权限
- excel - 如何在不使用熊猫对其应用格式的情况下读取 Excel 单元格的值
- javascript - 连接到移动数据时无法打开网站,但连接到 wifi 时打开