Các tệp hàng loạt không thể là một đường dẫn có dấu cách khi nó được nâng lên


2

Tôi đang cố gắng tạo một tệp bó cần được thông qua một đường dẫn và có các thao tác trong đó yêu cầu độ cao (tôi sử dụng mklink trong đó).

Đây là cách để tạo lại vấn đề.

  1. Tạo một tệp .bat chỉ chứa pause
  2. Tạo một lối tắt đến tập tin đó.
  3. Tạo 2 thư mục, C:\ThisWillWorkC:\This Will Fail
  4. Hãy thử kéo từng thư mục vào phím tắt. Cả hai nên làm việc.
  5. Thay đổi cài đặt phím tắt và kiểm tra các tùy chọn tùy chọn nâng cao mà nó yêu cầu quyền quản trị viên.
  6. Hãy thử kéo từng thư mục một lần nữa, C:\ThisWillWork sẽ cư xử như vậy nhưng C:\This Will Fail sẽ flash dấu nhắc lệnh và ngay lập tức đóng lại.

Điều này đang được thực hiện trên Windows 7 64-bit.

Tôi có thể làm gì để hoàn thành mục tiêu của mình? Có cách nào cho phép tôi sử dụng mklink không có độ cao? Tôi có cần chuyển từ sử dụng các tệp bó của windows sang thứ khác không (có thể là powershell)? Tôi có thể sử dụng cái gì khác để có thể viết một tập lệnh để xóa một thư mục sau đó tạo lại nó với tư cách là một liên kết tượng trưng đến thư mục mà tôi đã bỏ trên đó?


MKLINK (bất cứ điều gì tạo ra một liên kết tượng trưng thực sự) đều yêu cầu quyền truy cập của Quản trị viên (có thể tắt UAC?) Vì nó tạo ra một sự thay đổi toàn hệ thống. Toàn bộ con đường với một thứ không gian chắc chắn là kỳ lạ! Nếu có sự giúp đỡ nào thì nó cũng làm điều tương tự với tôi, vì vậy nó không chỉ là bạn. ;)
Ƭᴇcʜιᴇ007

@Techie: SeCreateSymbolicLinkPrivilege, không truy cập đầy đủ Admin. Đối với "thay đổi toàn hệ thống", nó không "nhiều hệ thống" hơn nhiều so với việc tạo một tệp thông thường.
grawity

@grawity Đúng vậy, tôi đã nghĩ rằng nó sẽ phải được đăng ký ngoài hệ thống tập tin thông thường.
Ƭᴇcʜιᴇ007

@grawity SeCreateSymbolicLinkPriv đặc biệt là loại điều tôi đang tìm kiếm, bạn có phiền khi viết các bước về cách đặt nó cho người dùng bình thường và đăng nó như một câu trả lời không. nó sẽ tốt cho những người khác tìm thấy trang này
Scott Chamberlain

1
@Scott: Họ sẽ không tìm thấy trang này vì nó thảo luận về một câu hỏi hơi khác (độ cao và khoảng trắng trong các đối số tệp bó). Câu trả lời này nên giúp.
grawity

Câu trả lời:


3

Hãy thử tạo một lối tắt như

%Windir%\System32\cmd.exe /C C:\BIN\batchfile.bat 

Nếu điều đó không tự giải quyết nó, hãy thử như sau.

Để giải quyết vấn đề này, thay đổi giá trị Bắt đầu trong hộp thoại Thuộc tính Dấu nhắc Lệnh hoặc trong hộp thoại Thuộc tính Notepad.

Để làm đươc như vậy, hãy tuân theo những bước sau:
Bấm Bắt đầu, trỏ đến Tất cả các Chương trình, rồi trỏ đến Phụ kiện.
Bấm chuột phải vào Dấu nhắc Lệnh hoặc Notepad, rồi bấm Thuộc tính.
Trong hộp Bắt đầu, thay đổi giá trị từ% HOMEDRIVE %% HOMEPATH% thành giá trị toàn hệ thống, chẳng hạn như% WINDIR%.
Nhấn OK.

Xem http://support.microsoft.com/kb/832434 để biết chi tiết đầy đủ.

Nếu bạn thấy nhiều hơn những gì đang xảy ra với phương thức ban đầu của mình, bạn có thể mở một dấu nhắc lệnh với tư cách quản trị viên và gõ

%windir%\System32\cmd.exe /C "C:\bin\batchfile.bat" "C:\THIS WILL FAIL" 

Điều này sẽ đưa ra một lỗi mà không tải batchfile vì nó không thực hiện một số phân tích dòng lệnh.


KB có thể có hoặc không có liên quan, nhưng tôi đã thử cả hai và không chắc chắn nếu cả hai đều được yêu cầu. Nếu bạn chạy cmd /? bạn sẽ thấy rất nhiều tùy chọn liên quan đến cách phân tích cú pháp dòng lệnh, đặc biệt là có loại bỏ các ký tự trích dẫn hay không. Các tập tin bó không liên quan vì nó không đi xa như mở nó. Trong thực tế cmd / C "X" "C: A B" không phân tích cú pháp, nhưng cmd / C X "C: A B" cũng vậy và cmd / C "X" "CA B" cũng vậy.
sgmoore
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.