中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 03:26
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]在一个文本里面把小写字母替换成大写字母 查看 1,083 回复 9
楼 主 [求助]在一个文本里面把小写字母替换成大写字母 发表于 2009-07-03 22:30 ·  中国 广东 深圳 润迅通信集团有限公司联通节点
新手上路
积分 16
发帖 10
注册 2009-05-09 00:32
17年会员
UID 144681
性别 男
状态 离线
用批处理怎么把一个文本里面把小写字母转换成大写字母?例如:a.txt里面的abcghe转换成ABCGHE这样的,我的vb正在自习中,不知道怎么做?
2 发表于 2009-07-03 23:57 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
用正则表达式啊

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
3 发表于 2009-07-04 01:13 ·  中国 广东 深圳 润迅通信集团有限公司联通节点
新手上路
积分 16
发帖 10
注册 2009-05-09 00:32
17年会员
UID 144681
性别 男
状态 离线
我现在要实现a.txt里面的abcdefg直接转换成ABCDEFG,转换后还是在a.txt里面。把原来的abcdefg覆盖直接变成ABCDEFG。用VB怎么写?想学习下?希望那个高手指点下。
4 发表于 2009-07-04 01:25 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
set file="a.txt"

(for /f "delims=" %%a in ('findstr /n .* %file%') do (
set var=%%a
setlocal enabledelayedexpansion
if "!var:*:=!" neq "" (
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 var=!var:%%a=%%a!
)
echo;!var:*:=!
) else echo;
endlocal
))>"%temp%\UPPERCASE"

move "%temp%\UPPERCASE" %file%
5 发表于 2009-07-04 02:33 ·  中国 广东 深圳 润迅通信集团有限公司联通节点
新手上路
积分 16
发帖 10
注册 2009-05-09 00:32
17年会员
UID 144681
性别 男
状态 离线
谢谢!这个问题解决了?但是不了解这句是什么意思?move "%temp%\UPPERCASE" %file% 这个是什么意思?
6 发表于 2009-07-04 03:05 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
Originally posted by benetqxk at 2009-7-4 02:33 AM:
谢谢!这个问题解决了?但是不了解这句是什么意思?move "%temp%\UPPERCASE" %file% 这个是什么意思?

移动 "%temp%\UPPERCASE" 这个文件到当前目录,改名为 a.txt,覆盖原有的 a.txt。
7 发表于 2009-07-04 03:26 ·  中国 广东 深圳 润迅通信集团有限公司联通节点
新手上路
积分 16
发帖 10
注册 2009-05-09 00:32
17年会员
UID 144681
性别 男
状态 离线
谢谢!太感谢了!
8 发表于 2009-07-04 03:31 ·  中国 吉林 长春 电信
初级用户
★★
积分 132
发帖 68
注册 2008-07-29 20:51
18年会员
UID 122345
性别 男
状态 离线
文件内容多的话 用vbs更效率.dos+vbs


@echo off
setlocal enabledelayedexpansion
if not exist a.txt echo fsdkljsfadljksdklfsd>a.txt&echo fsdkljsf要dljksdklfsd>>a.txt
for /f "delims=" %%i in ('type a.txt') do call :subVbsUCase "%%i"
move /y b.txt a.txt &type a.txt&pause>nul&exit
:subVbsUCase
echo On Error Resume Next>tmp.vbs
echo dim str>>tmp.vbs
echo str=UCase("%~1")>>tmp.vbs
echo wscript.echo str>>tmp.vbs
cscript //nologo tmp.vbs>>b.txt&del tmp.vbs
goto :eof
9 发表于 2009-07-04 05:06 ·  中国 河北 廊坊 三河市 移动
新手上路
积分 16
发帖 13
注册 2009-04-30 06:25
17年会员
UID 144120
性别 男
状态 离线
用sed
sed "s/\(.*\)/\U\1/" a.txt
10 发表于 2009-07-04 23:06 ·  中国 广西 南宁 西乡塘区 电信
初级用户
★★
积分 99
发帖 53
注册 2006-08-18 18:44
19年会员
UID 60809
状态 离线
4楼的代码不能用塞~~-_-! 9楼的不错!
论坛跳转: