|
本帖最后由 quya 于 2020-10-12 15:52 编辑 我也来贡献一下, 其实呢,不用再用一次for , 只需要call就可以了 例如 echo “有变量” 和 call echo “有变量” 在没有变量的时候是一样的, 但有变量的时候后者会先把变量转换的。 所以也可以这么写
|
收藏,有点启发意义! |
magicgenius 发表于 2020-9-12 20:38 哈哈!是不懂这些东西,平时只是拿那些大神分享的,没想到批处理和CMD是不一样。 |
极度凶残 发表于 2020-9-12 17:11 你真是不懂批处理啊!这能直接放在CMD中运行吗?得在批处理文件中!要不得去掉一个%. |
查询的注册表项根本不是同一个,你那个默认是使用绝对路径而不是存在变量的相对路径 |
magicgenius 发表于 2020-9-11 06:31 试过好像出错 |
极度凶残 发表于 2020-9-10 21:37 你没测试就瞎回复?我当然是测试过了!!! |
magicgenius 发表于 2020-9-4 14:03 没测试就发上来? |
dos时代菜鸟 发表于 2020-9-4 08:31 正解,感谢指教! |
本帖最后由 dos时代菜鸟 于 2020-9-4 08:35 编辑 这样就可以了, 就是再用一次 for 转换下。 具体自己研究。
|
本帖最后由 窄口牛 于 2020-9-4 07:07 编辑
|
用用户环境变量啊 |
Bluebells 发表于 2020-9-3 20:59 我这执行正常 |
@echo off set "str=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" for /f "tokens=2*" %%a in ('reg query "%str%" /v Personal 2^>nul') do set "a=%%b" rd /s/q "%a%\Test" |
都市浪子666 发表于 2020-9-3 20:48 添加了 setlocal enabledelayedexpansion 语句后, 执行结果并没有变化 |
本帖最后由 都市浪子666 于 2020-9-3 20:49 编辑
@echo off setlocal enabledelayedexpansion for /f "skip=2 tokens=2* delims= " %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') do set Personal=%%j rd /s/q "%Personal%\Test" |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.