![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 21:37 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 单引号嵌套如何处理 |
| 可打印版本 766 / 3 |
| 第1楼 bd123456789 | 发表于 2008-03-27 19:11 |
| 中级用户 发帖 216 积分 360 | |
|
单引号嵌套如何处理 批处理中能顺利执行的语句:
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 ] |
|
| 第2楼 slore | 发表于 2008-03-27 21:05 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
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 |
|
| 第3楼 bd123456789 | 发表于 2008-03-27 21:46 |
| 中级用户 发帖 216 积分 360 | |
|
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" |
|
| 第4楼 slore | 发表于 2008-03-27 23:52 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
cmd模式调用%%b可以么?不是bat貌似不需要转义,忘了转义的话还能用不。。。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |