【发布时间】:2019-11-14 21:34:09
【问题描述】:
我需要搜索目录的查找文件(它们都具有相同的名称布局)。查看文件名中的位置 9,10,11,根据 3 个字符创建一个目录,并将位置 9,10,11 的所有具有相同 3 个字符的文件移动到创建的目录中。..
代码有效,但对于它找到的每个文件,我都会收到错误
“使用“2”参数调用“子字符串”的异常:“startIndex 不能大于字符串的长度。”
所有文件的长度至少为 25 个字符。 显示的代码没有文件的移动部分,因为与错误无关。
dir -recurse| %{
$id = $_.Name.SubString(8,3);
if(-not (Test-Path $id)) {mkdir $id}; }
【问题讨论】:
-
dir -recurse->dir ???????????* -recurse -
谢谢,就像一个魅力.. 如果你有时间?你能解释一下为什么会这样吗?
-
您在目录层次结构中的某个位置有名称少于 8 个字符的文件,因此来自子字符串的错误。通配符模式
???????????*只会对名称中包含 11 个以上字符的 glob 文件(?表示正好一个字符,*表示任何字符) -
感觉 PowerShell 的神总是来自荷兰 ;) 一般问题,如果在 cmets 中回答了问题,谁会写下答案以便问题得到解决?
-
谢谢,帮了大忙。有超过 20k 个文件..
标签: powershell file search substring move