求解批处理的若干小问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 18:49:54
1.如何通过一个表达式改变已经定义好了的字符变量?(比如我通过一个表达式把v='a'变v='b'或者v='b'后变v='c',但是我用set v=%v%+1不成功)
2.如何列出某目录下首字母为大写字母的子目录及其文件?(我想到用通配符,但是dir /s/b [A-Z]* 不成功)

1、
@echo off&setlocal enabledelayedexpansion
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z)do (
set/a .+=1&call set %%a=%%.%%)
::试改变以下表达式5和e运行看看!
set/a a=%e%+5
for %%b in (a b c d e f g h i j k l m n o p q r s t u v w x y z)do (
set/a ..+=1&if !a!==!..! set a=%%b)
echo %a%
pause

2、如LS所说的不用考虑大小写的!

1.A变B不是这样+1 而是要用内码+1
2.不知道 - -

1.呵呵,批处理中的变量不能像高通讯语言那样使用.就算是这样的语句:
set a = 1
set a = 2
其a变量的结果还是不变的,且中间不存在类型,可以把所有类型都理解为字符型的.

2.在DOS的最初设计是8.3文件名规则,在这个规则中文件名是8位以内,后辍名也是3位以内.最初并没有定义大小写的,所以是不存在大小写的问题的.且通配符是只有?和*不存在其他的.所以不考虑大小写的问题.就算是现在一个文件夹的文件重名,是不区公大小写的,比如说有一个k.txt,不可能再建立一个K.txt的.所以不用考虑大小写的!