Gọi lệnh này có quyền hạn và gặp lỗi. Lái xe cho tôi.Đệ quy đổi tên tệp trong Powershell
Prompt> get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like
"*NYCSCA*" } | rename-item $_ -newname $_.Name.Replace(" ","_") -whatif
Dưới đây là câu trả lời:
You cannot call a method on a null-valued expression.
At line:1 char:140
+ get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like "*NYCSCA*" } | select FullName | rename-item $_ -n
ewname $_.Name.Replace <<<< (" ","_") -whatif
+ CategoryInfo : InvalidOperation: (Replace:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Nếu tôi loại bỏ phần cuối cùng, tôi nhận được một danh sách các tập tin. Bất kì manh mối nào? Tôi đã không grocked powershell được nêu ra, rõ ràng.
Lưu ý: Tôi đã cố đăng nội dung này lên superuser, nhưng trang web liên tục bị lỗi - sẽ không cho phép tôi thêm câu hỏi chính xác này.
Ở đây nó được đơn giản hóa rất nhiều. Tôi thậm chí không thể có được ví dụ cổ điển này để làm việc.
gci *NYCSCA* | ren $_ ($_.Name).Replace("foo","bar")
Cảm ơn bạn @ JNK,% đã làm. Giải pháp tôi cần là thế này, trong trường hợp bạn đang quan tâm:
gci -recurse | where-object{ $_.Name -like "*NYCSCA*"} | %{rename-item $_.FullName $_.FullName.Replace("NYCSCA","SDUSD") }
thấy http://stackoverflow.com/a/21614001/8479 – Rory