2009-02-03 20 views
6

Tôi đang thiếu thứ gì đó (hiển nhiên?) Về việc thoát chuỗi hoặc không gian của tôi trong lệnh batch của Windows Server 2k3 sau đây.Làm thế nào để yêu cầu FORFILES thực thi Command on Path?

FORFILES -m *.wsp -c "CMD /C C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^ -o^ addsolution^ -filename^ @FILE" 

Kết quả trong các lỗi sau

'C: \ Program Files \ Common Files \ Microsoft Shared \ web server mở rộng \ 12 \ bin \ STSADM.EXE -o addsolution -filename "foobar. wsp "'không được nhận dạng dưới dạng lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt.

Nhưng tôi không thể hiểu tại sao. Tôi đang làm việc tại Mr. Simon Sheppard's fine documentation

Trả lời

9

Đường dẫn cần được trích dẫn và báo giá phải được thoát.

FORFILES -m *.wsp -c "CMD /C ^0x22C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^0x22 -o^ addsolution^ -filename^ @FILE" 

Một đồng nghiệp đề nghị sử dụng các hex cho", và tôi cuối cùng đã tìm ra rằng hex cần thoát.

+0

Cảm ơn! Bạn đã lưu tôi. – guanome

2

Một câu trả lời có thể là sử dụng 8,3 tên cũ bạn sẽ có được bằng cách thực hiện dir/X

Giống như: C: \ PROGRA ~ 1 thay vì C: \ Program Files.

Các vấn đề liên quan