我可以使用什么函数在PowerShell 2.0中查找字符串中的字符位置.
即如果使用SQL Server,我会使用CHARINDEX或PATINDEX.
我查看了使用Select-Stringcmdlet,但它似乎没有做我需要它做的事情.
最终,我希望在文件名中找到一个"_"字符,并将所有内容删除到以下"." .
示例文件名237801_201011221155.xml
最终解决方案,下面删除当前目录中所有.xml文件的所有字符,包括<_>到<.>
Get-Childitem *.xml | Rename-Item -newname `
{ $_.name -replace $_.name.SubString($_.name.IndexOf("_"), `
$_.name.LastIndexOf(".") - $_.name.IndexOf("_") ),''}
Run Code Online (Sandbox Code Playgroud)
最终会得到237801.xml
在我给自己某种压力相关的心脏病发作之前.
有谁知道如何完成看似简单的任务设置一个数据流任务的结果集(结果将是0或1)并将该值分配给变量.
我创建了变量ok.
结果集来自具有多个元素的XML文件.标志(0或1)是其中一个元素的结果,因此我还需要知道如何将结果集作为该标志.
如果有人可以提供帮助,我真的很感激.
更新:我最终将结果(0,1)读回SQL Server进入标志表.然后使用Execute SQL脚本将其从SQL Server读取回变量.不确定这是否是完成它的最佳方式,但似乎已经完成了这个伎俩.
我一直在与这个争夺几天,我正在寻求使用以下语法自动化XML输出
SELECT (
SELECT CONVERT(VARCHAR(10),GETDATE(),103)
FOR XML PATH('DataVersion'),
TYPE
),
(
SELECT CoNum,
CoName,
CONVERT(VARCHAR(10),AccountToDate,103) 'DLA',
LAFileNet
FROM @XMLOutput
FOR XML PATH('Company'),
TYPE
)
FOR XML PATH(''),
ROOT('Companies')
Run Code Online (Sandbox Code Playgroud)
这会创建以下输出
<Companies>
<DataVersion>15/11/2010</DataVersion>
<Company>
<CoNum>111</CoNum>
<CoName>ABCLmt</CoName>
<DLA>12/12/2010</DLA>
<LAFileNet>1234</LAFileNet>
</Company>
<Company>
<CoNum>222</CoNum>
<CoName>DEFLmt</CoName>
<DLA>12/12/2007</DLA>
<LAFileNet>5678</LAFileNet>
</Company>
</Companies>
Run Code Online (Sandbox Code Playgroud)
我正在努力的是如何将XML声明添加<?xml version="1.0" encoding="ISO-8859-1" ?>到输出的顶部?
更新1:我认为我需要在SQL服务器中创建XML模式来定义xsl:output是否正确?然后将输出分配给该架构?
更新2:此后发现这些链接 http://forums.asp.net/t/1455808.aspx - 查看健康的评论.另外 http://www.devnewsgroups.net/group/microsoft.public.sqlserver.xml/topic60022.aspx