楼 主
[请教]如何动态改写变量的默认值
发表于 2006-10-18 10:15 · 中国 浙江 杭州 电信
中级用户
★★
积分 305 发帖 85 注册 2005-05-23 00:00 UID 39004 性别 男
状态 离线
我写了个批处理文件,遇到个问题请大家帮忙,看看能不能解决:
这个批处理文件有个变量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 楼
发表于 2006-10-18 10:49 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 UID 59080
状态 离线
先看你的第二个问题.
@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
第 3 楼
发表于 2006-10-18 12:39 · 中国 浙江 杭州 电信
中级用户
★★
积分 305 发帖 85 注册 2005-05-23 00:00 UID 39004 性别 男
状态 离线
谢谢,我已在本坛找到第二个问题的解决方法。但是随之带来一个新的问题:这个批处理运行第一次的时候,没有问题,但重复运行时却提示:'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 楼
发表于 2006-10-18 13:01 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 UID 54766 性别 男 来自 上海
状态 离线
: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 楼
发表于 2006-10-18 13:14 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 UID 59080
状态 离线
第 6 楼
发表于 2006-10-18 13:32 · 中国 浙江 杭州 电信
中级用户
★★
积分 305 发帖 85 注册 2005-05-23 00:00 UID 39004 性别 男
状态 离线
感谢两位的提醒,原来是因为我无意中使用的系统的变量:path.我把path改为其他的就好了
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正