[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何让%SystemDrive%变成盘符C盘?

我用注册表 获取ProgramData的位置
  1. for /f "tokens=2*" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v "ProgramData"') do set PD=%%j
  2. echo PD位置:%PD%
  3. md "%PD%\tiantian\file
  4. pause >nul
复制代码
想创建这个文件夹 正常应该是在c:\ProgramData\tiantian\file 创建
但是 这个脚本执行下来 他就在当前目录创建%SystemDrive% 这么一个文件夹了  %SystemDrive%没有被执行为C

请教高手  这个该怎么做
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1楼 的帖子

不用for
直接reg就好了
创建就直接md %systemdrive%\tiantian\file

TOP

是这样的  因为有的win7默认更改了 ProgramData的位置  所以 ProgramData不一定就在系统盘  所以不能直接%systemdrive%\ProgramData\tiantian\file

必须先读取他的位置在操作

TOP

回复 3楼 的帖子

如果 %programdata%不存在呢

TOP

不可能的  win7 这个目录 就和windows   Program Files 这些目录一样  是必须的  100%存在

我现在想知道 怎么让 我1楼发那个批处理   解析成C盘  而不是%systemdrive%

TOP

回复 5楼 的帖子

可以贴出你的%pd%显示什么吗

TOP

%SystemDrive%\ProgramData\\tiantian\file
显示的是这个


c:\ProgramData\\tiantian\file
我想要的是这种

TOP

这个一个变量嵌套的问题
  1. @echo off
  2. for /f "tokens=2*" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v "ProgramData"') do set PD=%%j
  3. call,echo PD位置:%PD%
  4. call,md "%PD%\tiantian\file"
  5. pause >nul
复制代码
1

评分人数

---学无止境---

TOP

回复 8楼 的帖子

的确是楼上说的问题
可以修改成这样
  1. for /f "tokens=2*" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v "ProgramData"') do call,set PD=%%j
  2. echo PD位置:%PD%
  3. md "%PD%\tiantian\file"
  4. pause >nul
复制代码

TOP

谢谢,8楼 9楼

[ 本帖最后由 sqcsl 于 2010-10-16 17:28 编辑 ]

TOP

返回列表