标题: 单引号嵌套如何处理
[打印本页]
作者: bd123456789
时间: 2008-3-27 19:11
标题: 单引号嵌套如何处理
批处理中能顺利执行的语句:
for /f "skip=9 tokens=2* delims== " %%a in ('tasklist /v /fo list /fi "imagename eq notepad.exe"') do echo %%b
现在我想使用VBS,显示进程任务标题
Set WshShell=WScript.CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("cmd /c for /f " & """skip=9 tokens=2* delims== "" %%a in (" & "'" & """tasklist /v /fo list /fi ""imagename eq notepad.exe""" & "'" & ") do echo %%b")
WScript.Echo oExec.StdOut.ReadAll
结果总是空白?
问题是:如何在括号中正确使用引号,以解决单引号和双引号问题???
[
Last edited by bd123456789 on 2008-3-27 at 07:12 PM ]
作者: slore
时间: 2008-3-27 21:05
Set WshShell
= WScript.
CreateObject("
WScript.Shell"
)
strCommand
= "
cmd /c @echo off&&for /f ""skip=9 tokens=2* delims== "" %a in ('tasklist /v /fo list /fi ""imagename eq notepad.exe""') do echo %b"
Set oExec
= WshShell.Exec
(strCommand
)
WScript.Echo oExec.StdOut.
ReadAll
Set oExec
= Nothing
Set WshShell
= Nothing
作者: bd123456789
时间: 2008-3-27 21:46
标题: OK,比我想像的简单多了,也聪明多了
只要将双引号 再加个 双引号 就行!
@echo off 也很必要
我现在自己试了一个,即 只要是见引号 就分隔 是双引号的 """"(四个)代替 单引号的 "'" 用双引号括起来 这样也行,不过代码看上去就很烦了!
例:
msgbox "cmd /c for /f " & """" & "skip=9 tokens=2* delims== " & """" & " %%a in (" & "'" & "tasklist /v /fo list /fi " & """" & "imagename eq notepad.exe" & """" & "'" & ") do echo %%b"
作者: slore
时间: 2008-3-27 23:52
cmd模式调用%%b可以么?不是bat貌似不需要转义,忘了转义的话还能用不。。。