Tôi không biết làm thế nào để mô tả chính xác những gì tôi đang cố gắng làm nhưng đây là một tệp mẫu ví dụ minh họa những gì tôi không thể tìm ra:Làm cách nào để đặt biến môi trường thành giá trị có dấu cách trong tệp lô?
Tôi có một tệp lô. Bên trong tập tin batch Tôi đang cố gắng để tạo ra một thư mục:
Set CopyFrom = %~dp0
if Exist "%ProgramFiles(x86)" (
Set TargetDir = %ProgramFiles(x86)%\My Directory Name has spaces
)
md %TargetDir%\NewSubFolder
copy %CopyFrom%\SourceFile.zip %TargetDir%\NewSubFolder
tập tin thực thi của tôi là thất bại trên dòng 4 Set TargetDir =...
với:
\My was unexpected at this time
Tôi giả định này là bởi vì tôi có khoảng trống trong tôi tên đường dẫn. Tôi nghĩ tôi chỉ có thể quấn biến của tôi với dấu ngoặc kép:
Set TargetDir = "%ProgramFiles(x86)%\My Directory Name has spaces"
Nhưng rồi khi tôi nhận được vào dòng mà tạo ra các thư mục nó không thành công vì %TargetDir%
hiện đang được bọc trong dấu ngoặc kép. md "%TargetDir%"\NewSubFolder
Điều này có thể được khắc phục hay tôi nên viết một VBScript để sắp xếp mọi thứ?
Cảm ơn, đó chỉ là vé, được nhiều người đánh giá cao. – BobTheBuilder
Nó không bao giờ xảy ra với tôi rằng tôi có thể bọc toàn bộ mục sau khi Đặt trong dấu ngoặc kép ... tất nhiên, nó không chính xác trực quan? – BobTheBuilder
Không, không trực quan. (Không nhiều về cửa sổ dòng lệnh là - đó là lý do tại sao tôi chuyển sang powershell). Tôi nghĩ về nó như thế này: cả hai bên của "=" là một đối số duy nhất cho lệnh set. – zdan