中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [请教]如何动态改写变量的默认值
作者:
标题: [请教]如何动态改写变量的默认值 上一主题 | 下一主题
yardian
中级用户




积分 305
发帖 85
注册 2005-5-23
状态 离线
『楼 主』:  [请教]如何动态改写变量的默认值

我写了个批处理文件,遇到个问题请大家帮忙,看看能不能解决:
这个批处理文件有个变量A,在每次启动这个批处理时需要用户输入字符。同时有另一个变量B,当用户输入新值时,B调用A,如果用户不输入任何内容,则B使用默认值。具体内容如下:
:A
echo 请输入A值:
set /p A=
:B
if {%A%}=={} set A=0x6100830c
:c
call:B
现在我希望当用户输入A的值后,能自动改写set A后面的内容,并保存。下次运行时,如果不输入,则调用A的新默认值。不知道能不能实现。
另外再请教 一下:如何写个批处理获取包括某个扩展名的文件名?比如说:我C盘下有个文件名是a.bin(a的长度不固定)如何找到这个文件并赋给B变量?

2006-10-18 10:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


  先看你的第二个问题.
@echo off
set /p wj=        请输入你要找的文件的名字。
for /f %%i in ('dir /s/b/a-d c:\%wj%') do (
@echo 你要找的文件%%~nxi位于%%~fi.
echo.
echo 文件名为:%%~nxi
echo.)
PAUSE>NUL


2006-10-18 10:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yardian
中级用户




积分 305
发帖 85
注册 2005-5-23
状态 离线
『第 3 楼』:  

谢谢,我已在本坛找到第二个问题的解决方法。但是随之带来一个新的问题:这个批处理运行第一次的时候,没有问题,但重复运行时却提示:'find' 不是内部或外部命令,也不是可运行的程序或批处理文件。

脚本如下:
:1
dir "*.bin" | find /I "%3640%" > b.txt
FOR /F "tokens=4" %%a IN (b.txt) do (set id=%%a)
for /f "tokens=1,2 delims=*" %%i in (b.txt) do call :iosfile %%i
:iosfile
    set path=%CD%\%id%
    del b.txt
set  iosname=%path%
goto 1

2006-10-18 12:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 4 楼』:  

:1
dir "*.bin" | find /I "%3640%" > b.txt
FOR /F "tokens=4" %%a IN (b.txt) do (set id=%%a)
for /f "tokens=1,2 delims=*" %%i in (b.txt) do call :iosfile %%i
:iosfile
    set path=%path%;%CD%\%id%
    del b.txt
set  iosname=%path%
goto 1



第一高手    第二高手

2006-10-18 13:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  


  顶楼上的。

  这个细节值得注意咯...


2006-10-18 13:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yardian
中级用户




积分 305
发帖 85
注册 2005-5-23
状态 离线
『第 6 楼』:  

感谢两位的提醒,原来是因为我无意中使用的系统的变量:path.我把path改为其他的就好了

2006-10-18 13:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: