Board logo

标题: vista系统和XP系统的P处理命令是不一样的么? [打印本页]

作者: guigui     时间: 2008-7-26 22:09    标题: vista系统和XP系统的P处理命令是不一样的么?

for /f "skip=4 tokens=1,2 delims=:" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install') do (
  set QQPathL=%%a
  set QQPathR=%%b
)
set QQPath=%QQPathL:~-1%:%QQPathR%
echo.
echo.
echo %QQPath%
echo.
echo.


这段代码在XP系统中运行是成功的  路径显示出来了
但同样的代码到vista系统下运行就出错了  难道2个系统的CMD命令有些是不通用的?
(vista下显示的是  “~-1QQPath“)
作者: HAT     时间: 2008-7-26 23:18
在vista中打开注册表,看看是不是有这个分支?
HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install'
作者: guigui     时间: 2008-7-27 13:00
嗯  我看过   的确有的
作者: slore     时间: 2008-7-27 13:01
貌似权限问题?UAC?
作者: guigui     时间: 2008-7-27 13:11
我用管理员身份运行也不行
作者: slore     时间: 2008-7-27 13:56
echo "%QQPathL%"  "%QQPathR%"

什么结果?
作者: guigui     时间: 2008-7-27 14:13
结果是    ""   ""

是空
作者: slore     时间: 2008-7-27 16:46
那就是原因拉。。。。

那%%a,%%b能显示出来麽?
作者: HAT     时间: 2008-7-27 19:56

for /f "skip=4 tokens=1,2 delims=:" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install') do (
  set QQPathL=%%a
  set QQPathR=%%b
echo %%a
echo %%b
)
set QQPath=%QQPathL:~-1%:%QQPathR%
echo %QQPath%
pause
Vista里面的结果贴出来看看
作者: guigui     时间: 2008-7-27 20:44
只显示了这个:


~-1QQPathR


奇怪了  我把HAT大哥的代码在XP下运行是好的嘛

[ Last edited by guigui on 2008-7-27 at 08:47 PM ]
作者: HAT     时间: 2008-7-27 20:52
能否把运行9楼的代码后的结果截图上来看看?
作者: pusofalse     时间: 2008-7-28 01:31
应该都一样,不然批处理爱好者谁还会用vista 。。。最新?的系统。
作者: guigui     时间: 2008-7-28 09:19
好像不让我发图片   估计我等级不够?

结果就是:
~-1QQPathR
请按任意键继续...
作者: HAT     时间: 2008-7-28 09:33
Vista运行这个命令的结果呢?
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install

作者: guigui     时间: 2008-7-28 11:38
显示正常的嘛

HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ
    Install     REG_SZ  C:\Program Files\Tencent\QQ2008\
作者: guigui     时间: 2008-7-28 11:38
显示正常的嘛

HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ
    Install     REG_SZ  C:\Program Files\Tencent\QQ2008\
作者: HAT     时间: 2008-7-28 11:41
XP上完整的结果肯定不是这个
作者: slore     时间: 2008-7-28 11:42
就2行……所以你不需要skip了
作者: guigui     时间: 2008-7-28 12:26
晕  我把skip=4 删掉后就显示正常了
作者: guigui     时间: 2008-7-28 12:53
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install

这是这段代码的结果
作者: fastslz     时间: 2008-7-28 13:01

@echo off
for /f "tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Tencent\QQ" /v "Install"^|find /i "Install"') do set "QQPath=%%b"
echo %QQPath%
pause
如果还不行
@echo off
for /f "usebackq tokens=2*" %%a in (`reg query "HKLM\SOFTWARE\Tencent\QQ" /v "Install"^|find "Install"`) do set "QQPath=%%b"
echo %QQPath%
pause

作者: guigui     时间: 2008-7-28 14:05
我只点了一下  怎么出来2篇  


我把 skip去掉好像好了   谢谢各位大哥  
我去找找看看 skip 什么意思

[ Last edited by guigui on 2008-7-28 at 02:21 PM ]
作者: HAT     时间: 2008-7-28 17:21
skip=n          - specifies the number of lines to skip at the
                  beginning of the file.
作者: yangzhiyi     时间: 2008-7-28 18:40
今天刚试了下,在XP中正常的在vista系统中的结果真是不同的。
for /F "tokens=1-4 delims=," %%i in ('getmac /v /fo csv /nh^|find /v "断开"') do (
echo [%%~i]>>%file%
echo 描述=%%~j>>%file%
echo 物理地址=%%~k>>%file%
echo 媒体状态=%%~l>>%file%
echo.>>%file%
)

如果你的本地连接正常,得到的结果是 本地??

for /F "tokens=1-4 delims=," %%i in ('getmac /v /fo csv /nh') do (
echo [%%~i]>>%file%
echo 描述=%%~j>>%file%
echo 物理地址=%%~k>>%file%
echo 媒体状态=%%~l>>%file%
echo.>>%file%
)
这个就正常