所以我有几个文件的文件夹:
$files = @(Get-ChildItem "myPath")
我可以通过调试器看到$files
包含几个项目,我想采取第一个:
$files[0] = "123_this.is.string"
我希望按'_'
拆分并取123
$splitted = $files[0] -split "_"
所以在这里我可以看到$splitted
是空的。
为什么会出现这种奇怪的行为?
答案 0 :(得分:4)
$ files [0]不是字符串,而是FileSystemInfo对象。
$files[0].getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True FileInfo System.IO.FileSystemInfo
因此,要使其工作,您必须将split函数用于文件的文件名,这是一个字符串。
$files[0].name.getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
有了它,它应该有效:
$files[0].name.split("_")
答案 1 :(得分:1)
尝试:
$exe = replaceAllChars($exe, '\\', '/');