Khi tôi đọc và trải nghiệm cho bản thân mình VBScript loại bỏ tất cả các dấu ngoặc kép và đối số. Có ai biết cách này không? Làm thế nào để vượt qua dấu ngoặc kép vào kịch bản?Dấu ngoặc kép trong đối số VBScript
Trả lời
Chỉnh sửa: Hiểu sai câu hỏi để câu trả lời mới ở đây:
Tôi không nghĩ bạn có thể làm điều đó theo bất kỳ cách nào. Tuy nhiên, một công việc xung quanh có thể là sử dụng thuộc tính CommandLine
của lớp Win32_Process, điều này sẽ giúp bạn có được dòng lệnh hoàn chỉnh mà tôi nghĩ.
Ví dụ thử kịch bản này:
Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set processes = wmi.ExecQuery("SELECT * FROM Win32_Process")
For Each proc in processes
If InStr(proc.CommandLine, "double quotes") > 0 Then
wscript.echo proc.CommandLine
End IF
Next
Với các thông số như: "some long commandline enclosed in double quotes here"
Tôi nghĩ rằng @Dani có nghĩa là một tham số cho một tập lệnh, nghĩa là 'cscript.exe test.vbs" tham số "' –
Ý của anh ta là: 'C: \> test.vbs" đối số "'. – Ruel
@Ruel @oracle Cảm ơn, sai lầm của tôi. –
Thật không may, tôi không biết bất cứ phương pháp thoát hiểm để vượt qua hai dấu ngoặc kép vì nó là một dấu phân cách lập luận. Tất cả những gì tôi có thể đề xuất là sửa đổi kịch bản của bạn hoặc thêm các dấu ngoặc kép từ đó.
Tôi không chắc chắn nếu làm việc này, nhưng khi đi qua thông số tôi đoán bạn có thể làm điều gì đó giống như -
chr(34) + <your argument string> + chr(34)
Các chr (34) là viết tắt của dấu ngoặc kép.
Điều này, thật không may, chỉ gây ra chuỗi chữ chr (34) xuất hiện dưới dạng tham số (hoặc một phần của tham số). Ví dụ: nếu tham số duy nhất là chr (34) + foo + chr (34) thì thông số được phân tích cú pháp sẽ chính xác. – jveazey
@ John L Veazey - Đó chính xác là những gì OP muốn từ câu hỏi của mình đúng không? Tôi không hiểu ý của bạn. Lấy làm tiếc. –
Nếu tham số đòi hỏi dấu ngoặc kép bạn có thể sử dụng một tham số được đặt tên để xác định nó và sau đó kèm theo giá trị với dấu ngoặc kép
dim arg
if WScript.Arguments.Named.Exists("a") then
arg = WScript.Arguments.Named("a")
arg = chr(34) & arg & chr(34)
end if
và sử dụng như sau:
cscript test.vbs /a:"a parameter"
nhưng doesn này không giúp đỡ nếu bạn chỉ muốn giữ báo giá nếu được cung cấp. Dấu ngoặc đơn là được chấp nhận, do đó bạn có thể sử dụng dấu nháy đơn (hoặc ký tự/chuỗi khác) và thực hiện Replace(arg, "'", chr(34))
để chuyển đổi thành dấu ngoặc kép.
Kịch bản này sẽ nhận được dòng lệnh như nó có, với dấu ngoặc kép và tất cả mọi thứ cho một biến gọi là strLine, và hiển thị nó:
Set objSWbemServices = GetObject("WinMgmts:Root\Cimv2")
Set colProcess = objSWbemServices.ExecQuery("Select * From Win32_Process")
For Each objProcess In colProcess
If InStr (objProcess.CommandLine, WScript.ScriptName) <> 0 Then
strLine = Mid(objProcess.CommandLine, InStr(objProcess.CommandLine , WScript.ScriptName) + Len(WScript.ScriptName) + 1)
End If
Next
WScript.Echo(strLine)
Vì vậy, chạy rằng với:
cscript scriptname.vbs "option" ""other option"" third option
sẽ kết quả trong:
"option" ""other option"" third option
Thay vì kiểm tra dòng lệnh để bao gồm WScript.ScriptName, bạn có thể g và PID hiện tại như trong số https://stackoverflow.com/a/13212628/1752986
- 1. Về sử dụng dấu ngoặc kép trong VBScript
- 2. Đối số argparse Python với dấu ngoặc kép
- 3. Dấu ngoặc kép trong VBA
- 4. dấu ngoặc kép blockquote style
- 5. Thay thế dấu ngoặc kép trong Javascript?
- 6. Sự khác nhau giữa việc sử dụng dấu ngoặc kép và dấu ngoặc kép trong python
- 7. Python - Sử dụng dấu ngoặc kép bên trong dấu ngoặc kép
- 8. Xóa dấu ngoặc kép trong JSONObject
- 9. web.config và dấu ngoặc kép trong connectionStrings
- 10. thoát dấu ngoặc kép trong chuỗi
- 11. Xóa dấu ngoặc kép trong javascript?
- 12. dấu ngoặc kép làm tổ trong bash
- 13. Grep chuỗi bên trong dấu ngoặc kép
- 14. Dấu ngoặc kép thoát trong PHP
- 15. Biến tĩnh PHP trong dấu ngoặc kép
- 16. Văn bản đối sánh regex Python giữa dấu ngoặc kép
- 17. Cụm từ thông dụng phù hợp giữa dấu ngoặc kép, có dấu ngoặc kép thoát
- 18. PreparedStatement.setString() mà không có dấu ngoặc kép
- 19. Java sử dụng hằng số Chuỗi với dấu ngoặc kép
- 20. Báo giá thoát và dấu ngoặc kép
- 21. Sử dụng dấu ngoặc kép đơn và kép cho href
- 22. dấu ngoặc kép Bash lồng và eval
- 23. boost :: filesystem thêm dấu ngoặc kép?
- 24. dấu ngoặc kép khác nhau MySQL của
- 25. bash regex với dấu ngoặc kép?
- 26. JSON.parse chuỗi với dấu ngoặc kép
- 27. Cách thay thế dấu ngoặc kép thẳng (")
- 28. php đơn và đôi dấu ngoặc kép
- 29. Tại sao một số chuỗi Python được in với dấu ngoặc kép và một số được in không có dấu ngoặc kép?
- 30. Bash: CONCATENATE tất cả các đối số và quấn chúng với dấu ngoặc kép
bạn có nghĩa là trong Windows Script Host không? –