![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 05:58 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [请教]如何动态改写变量的默认值 |
| 可打印版本 1,210 / 5 |
| 第1楼 yardian | 发表于 2006-10-18 10:15 |
| 中级用户 发帖 85 积分 305 | |
|
[请教]如何动态改写变量的默认值 我写了个批处理文件,遇到个问题请大家帮忙,看看能不能解决:
这个批处理文件有个变量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变量? |
|
| 第2楼 lxmxn | 发表于 2006-10-18 10:49 |
| 版主 发帖 4,938 积分 11,386 | |
|
先看你的第二个问题. |
|
| 第3楼 yardian | 发表于 2006-10-18 12:39 |
| 中级用户 发帖 85 积分 305 | |
|
谢谢,我已在本坛找到第二个问题的解决方法。但是随之带来一个新的问题:这个批处理运行第一次的时候,没有问题,但重复运行时却提示:'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 |
|
| 第4楼 fastslz | 发表于 2006-10-18 13:01 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
: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 |
|
| 第5楼 lxmxn | 发表于 2006-10-18 13:14 |
| 版主 发帖 4,938 积分 11,386 | |
|
顶楼上的。 这个细节值得注意咯... |
|
| 第6楼 yardian | 发表于 2006-10-18 13:32 |
| 中级用户 发帖 85 积分 305 | |
|
感谢两位的提醒,原来是因为我无意中使用的系统的变量:path.我把path改为其他的就好了
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |