所以我有几个文件的文件夹:
$files = @(Get-ChildItem "myPath")
Run Code Online (Sandbox Code Playgroud)
我可以通过$files包含几个项目的调试器看到,我想拿第一个:
$files[0] = "123_this.is.string"
Run Code Online (Sandbox Code Playgroud)
我想分裂'_'并带走123
$splitted = $files[0] -split "_"
Run Code Online (Sandbox Code Playgroud)
所以在这里我可以看到它$splitted是空的。
任何建议为什么这种奇怪的行为?
$files[0] 不是字符串而是 FileSystemInfo 对象。
$files[0].getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True FileInfo System.IO.FileSystemInfo
Run Code Online (Sandbox Code Playgroud)
所以为了让它工作,你必须使用 split 函数到文件的文件名,它是一个字符串。
$files[0].name.getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
Run Code Online (Sandbox Code Playgroud)
有了这个它应该工作:
$files[0].name.split("_")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |