无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 11948|回复: 16
打印 上一主题 下一主题

[求助]如何获取当前路径到一环境变量中?

[复制链接]
跳转到指定楼层
1#
发表于 2005-7-10 17:51:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
例如在c:\>下输入“cd>1.txt”可将1.txt的内容置为“c:\”
为什么不能用“cd>%root%”将%root%置为“c:\”呢?
若想将%root%置为当前路径该怎么做呢?
请大家帮帮忙。
2#
发表于 2005-7-10 17:58:33 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

[这个贴子最后由xusen在 2005/07/10 05:59pm 第 1 次编辑]

这个是有点难度啊,我也曾遇到过,但我是绕了很大一圈才赋值给变量
我也想知道简便的方法。
回复

使用道具 举报

3#
发表于 2005-7-11 08:48:59 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

可以用一些增强工具,如xset、strings等,应该可以完成。
回复

使用道具 举报

4#
发表于 2005-7-11 12:26:05 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

STRINGS.COM  9KB
XSET.EXE    59KB
个头都挺大哦,比编写个批处理还来的大
回复

使用道具 举报

5#
 楼主| 发表于 2005-7-11 19:45:33 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

下面引用由xusen2005/07/11 12:26pm 发表的内容:
STRINGS.COM  9KB
XSET.EXE    59KB
个头都挺大哦,比编写个批处理还来的大
具体怎么用?
能不能说的详细点?
多谢!
回复

使用道具 举报

6#
发表于 2005-7-12 18:23:52 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

用strings可能比较困难,xset没有用过。
比较简单的是用Horst的lmod,如下:
cd | lmod /L1 set curdir=[] > temp.bat
call temp.bat
del temp.bat
执行完成后,%curdir%就表示当前目录。
另外,如果在NT环境下,可以用这个命令:
for /f "tokens=*" %i in (';cd';) do @set curdir=%i
另外,在DOS下合理使用debug也应该没有问题。
回复

使用道具 举报

7#
发表于 2005-7-13 08:06:35 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

下载个“蓝云启动盘”看看,昨天我刚刚发现。它的作者lydong编写了一个get.bat,可以把当前时间、日期、所在目录、所在盘符等都存为环境变量。
回复

使用道具 举报

8#
发表于 2005-7-13 09:07:51 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

那你不如把get.bat的内容贴到这里来,让大家学习一下。
回复

使用道具 举报

9#
发表于 2005-7-13 09:41:54 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

对啊,让我们看看学学,他是用了什么外部命令
回复

使用道具 举报

10#
发表于 2005-7-13 10:15:22 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

好吧,这就是get.bat的内容。我未作任何修改。
::getvar.bat
@if [%2]==[] goto help
@if [%1]==[/?] goto help
@if [%1]==[/h] goto help
@if [%1]==[invoke] prompt set %2=%3$_
@if [%1]==[invoke] goto end
@if [%temp%]==[] set temp=c:
@%comspec% /c %0 invoke %1 $%2>%TEMP%\tt.bat
@echo off
call %TEMP%\tt.bat
if "%3"=="" DEL %TEMP%\tt.bat
set CMDLINE=
goto end
:help
@echo off
echo.
echo    GET.BAT V1.0  Lydong 030625
echo    ===============================
echo    get curver [Command]
echo    get [/?] or [/h]
echo.
echo    eg: get time t
echo        get dosver v
echo.
echo    Command:
echo          T   Current time
echo          D   Current date
echo          P   Current drive and path
echo          V   Windows version number
echo          N   Current drive
echo    ===============================
echo.
:end
回复

使用道具 举报

11#
发表于 2005-7-13 10:29:36 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

不错,确实有些技巧!使用了prompt这个命令,很巧妙!
回复

使用道具 举报

12#
发表于 2005-7-13 10:52:43 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

经典的批处理,只用到内部命令,相当不错。
回复

使用道具 举报

13#
发表于 2005-7-13 14:59:46 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

基本上,我认为,能够看懂这个批处理的人就属于DOS高手了。
回复

使用道具 举报

14#
发表于 2005-7-13 18:39:03 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

嗯嗯,你是在说你是高手么?哈哈,不过你的确是
回复

使用道具 举报

15#
发表于 2005-7-14 09:35:41 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

我当然算是某种程度上的高手。但并不意味着除了我以外就没有别的高手了,或者说,还有很多比我更高的高手。
回复

使用道具 举报

16#
 楼主| 发表于 2005-7-14 18:31:06 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

回去研究一下,
应该可以解决问题。
多谢各位大力相助,
受益匪浅!
回复

使用道具 举报

17#
发表于 2005-7-16 13:18:14 | 只看该作者

[求助]如何获取当前路径到一环境变量中?

Re All:
    也可以参考下面的链接中7楼的程序:
    http://www.cn-dos.net/forum/viewthread.php?tid=8905
    当然他们的核心算法是一样的,所以也存在NT系列环境下无法正确运行的问题,今天抽空重写了一下,聊作谈资吧:
  1. :: GetVar.bat - Get from ';PROMPT'; text to environment variable
  2. :: Will Sort - 10:29 2005-7-16 - CMD@XP/COMMAND@Win98/MSDOS6.22
  3. @echo off
  4. echo exit | %comspec% /k prompt set %1=%2$_:: > _GetVar.bat
  5. call _GetVar.bat
  6. for %%f in (_GetVar*.*) do del %%f
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-21 13:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表