Board logo

标题: 关于SET /P [打印本页]

作者: THENEWLIFE     时间: 2008-8-29 11:37    标题: 关于SET /P

@echo off
set /p a=输入y显示,输入N隐藏
if /i "%a%"=y goto xianshi
if /i "%a%"=N goto yincang
exit

:xianshi
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 1

:yincang
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 0
不知道为什么就是没用,还请高手帮我看看
作者: huahua0919     时间: 2008-8-29 12:14
你上面的程序不论你输入Y还是N,最终执行的还是yingcang的内容.
@echo off
set/p a=显示1,隐藏0
set "path0=hklm\software\microsoft\windows\currentversion\explorer\advanced\folder\hidden\showall"
if %a% equ 1 (reg add %path0% /v CheckedValue /t REG_DWORD /d 0x00000001 /f)
if %a% equ 0 (reg add %path0% /v CheckedValue /t REG_DWORD /d 0x00000000 /f)
pause&exit/b 0

作者: THENEWLIFE     时间: 2008-8-29 12:15
加了双引号注册表的键值还是没变,
XP SP2中测试的
@echo off
set /p a=输入y显示,输入N隐藏
if /i "%a%"="y" goto xianshi
if /i "%a%"="N" goto yincang
exit

:xianshi
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 1

:yincang
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 0
作者: huahua0919     时间: 2008-8-29 12:19
在你的每个跳转程序后面加上exit/b 0代码
作者: THENEWLIFE     时间: 2008-8-29 16:31
哦,明白点了我没加exit /b 的话,他一直运行下来,最后运行的还是隐藏的内容
@echo off
set /p a=输入y显示,输入N隐藏
if /i "%a%"="y" goto xianshi
if /i "%a%"="N" goto yincang
exit

:xianshi
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 1
exit /b 0

:yincang
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 0
exit /b 0
不过我这样修改了以后注册表键值还是没变???
作者: HAT     时间: 2008-8-29 16:54
exit /b 0替换成goto :eof也可以吧
作者: THENEWLIFE     时间: 2008-8-29 17:01
恩,但是不知道我命令什么地方错了,不知道为什么我选择了以后注册表的键值还是没变,还请HAT帮忙看看,我错在哪了
作者: HAT     时间: 2008-8-29 17:21
先把=改成==吧
作者: BC     时间: 2008-8-29 18:16


  Quote:
Originally posted by HAT at 2008-8-29 05:21 PM:
先把=改成==吧

用 equ比较保险吧...
作者: THENEWLIFE     时间: 2008-8-29 19:18
改成这样了还是没反应
@echo off
set /p a=输入y显示,输入N隐藏
if /i "%a%"=="y" goto xianshi
if /i "%a%"=="N" goto yincang
exit

:xianshi
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 1
exit /b 0

:yincang
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 0
exit /b 0
作者: huahua0919     时间: 2008-8-29 19:49
reg add后面不能回车的是一个空格
@echo off
set /p a=输入y显示,输入N隐藏
if /i "%a%"=="y" goto xianshi
if /i "%a%"=="N" goto yincang
exit

:xianshi
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 1 /f
exit /b 0

:yincang
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 0 /f
exit /b 0
[ Last edited by huahua0919 on 2008-8-29 at 07:52 PM ]
作者: HAT     时间: 2008-8-29 20:31    标题: Re 10楼

尽快学会调试批处理:删除@echo off,在合适的地方加pause
set /p a=输入y显示,输入N隐藏
if /i "%a%"=="y" goto xianshi
if /i "%a%"=="N" goto yincang
pause

:xianshi
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 1
pause

:yincang
reg add
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 0
pause

作者: THENEWLIFE     时间: 2008-8-29 22:53
谢谢各位的热心帮助,已经明白了,(突然想起了CCTV,MTV,Channel V- -#)
在此还是要特别感谢HAT的帮助,谢谢