Tôi đang cố gắng chạy lệnh sau trong Windows Server 2003 nhưng sed tạo một đống tệp mà tôi không thể xóa khỏi dòng lệnh bên trong thư mục hiện tại.Sed tạo các tệp không thể xóa trong Windows
for /R %f in (*.*) do "C:\Program Files\gnuwin32\bin\sed.exe" -i "s/bad/good/g" "%f"
Có ai có đề xuất nào không? Rất bí ẩn, tôi có thể xóa các tệp bằng Windows Explorer.
Theo yêu cầu, đây là một số tên tập tin ví dụ:
- sed0E3WZJ
- sed5miXwt
- sed6fzFKh
Và, thông tin khắc phục sự cố ...
- Nó xảy ra từ cả dấu nhắc lệnh & batch file
- Nếu tôi chỉ cần chạy sed trên một thư mục duy nhất, sau đó tôi sử dụng
sed "s/bad/good/g" *.*
và mọi thứ đều OK. Than ôi, tôi cũng cần nó để giải quyết tất cả các thư mục con. - Tôi chỉ cài đặt Sed.
- Sed đang tạo ra các tập tin
Nó sẽ giúp đỡ nếu bạn thấy một ví dụ tên tập tin. Tôi đã thử lệnh của bạn với "c: \ cygwin \ bin \ sed.exe" và nó hoạt động tốt hơn là cảnh báo về dấu gạch chéo ngược so với dấu gạch chéo. –
sed -i thực sự hoạt động khá tốt đối với tôi nếu tệp không chỉ đọc để bắt đầu. Không còn các tệp tạm thời không thể xóa được và không có lỗi. Tôi nên đề cập đến tôi đang sử dụng nó kết hợp với tìm thay vì trong một vòng lặp for. – mjohnsonengr