私は、このフォルダ構造を持っPowerShellの名前を変更する特別なディレクトリを再帰的に
C:\ Users \ユーザーmyuserのデスクトップと呼ばれるフォルダを含む \
- BL-100
- BL-105
- BL-108
など... ほとんどのBL-フォルダにはfile.xml、bすべてではない。
したがって、デスクトップでは、BLで始まるフォルダが多く、そのほとんどではなくすべてがfile.xmlを格納しています。
今、私は現時点ではBL-で開始しているすべてのフォルダを検索し、file.xmlを保存し、
にそうRG-100、RG-105、RG-108とにそれらのフォルダの名前を変更したいですこのスクリプトを得た:
foreach($Directory in Get-ChildItem -Path C:\Users\myUser\Desktop -Recurse | Where-Object{($_.Name.Substring(0,3) -eq 'BL-')}){
}
これは動作しません、私にエラーを示している。例外は、「2」の引数(複数可)と「サブストリング」を呼び出す:「インデックスおよび長さは文字列内の場所を参照しなければなりません。パラメータ名:長さ "
誰でもお手伝いできますか?
'$ _ 'BL - *' 様名前'。。注:操作を完了できない場合、部分文字列が失敗することがあります。例えば'' 1 '。Substring(0,2) '。 – JohnLBevan
@johnコメント(これは答えです)に加えて、このエラーの原因を理解するには、 "AB"という名前のフォルダ(2文字のみ)で何が起こるか考えてください。今は 'length'パラメータが範囲外です(文字列は長さが2文字で、3文字を要求しています) –
これはうまくいきました。 –