Board logo

标题: [求助]在一个文本里面把小写字母替换成大写字母 [打印本页]

作者: benetqxk     时间: 2009-7-3 22:30    标题: [求助]在一个文本里面把小写字母替换成大写字母

用批处理怎么把一个文本里面把小写字母转换成大写字母?例如:a.txt里面的abcghe转换成ABCGHE这样的,我的vb正在自习中,不知道怎么做?
作者: yishanju     时间: 2009-7-3 23:57
用正则表达式啊
作者: benetqxk     时间: 2009-7-4 01:13
我现在要实现a.txt里面的abcdefg直接转换成ABCDEFG,转换后还是在a.txt里面。把原来的abcdefg覆盖直接变成ABCDEFG。用VB怎么写?想学习下?希望那个高手指点下。
作者: tireless     时间: 2009-7-4 01:25

@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%

作者: benetqxk     时间: 2009-7-4 02:33
谢谢!这个问题解决了?但是不了解这句是什么意思?move "%temp%\UPPERCASE" %file% 这个是什么意思?
作者: tireless     时间: 2009-7-4 03:05


  Quote:
Originally posted by benetqxk at 2009-7-4 02:33 AM:
谢谢!这个问题解决了?但是不了解这句是什么意思?move "%temp%\UPPERCASE" %file% 这个是什么意思?

移动 "%temp%\UPPERCASE" 这个文件到当前目录,改名为 a.txt,覆盖原有的 a.txt。
作者: benetqxk     时间: 2009-7-4 03:26
谢谢!太感谢了!
作者: bluewaterx     时间: 2009-7-4 03:31
文件内容多的话 用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
作者: tab     时间: 2009-7-4 05:06
用sed
sed "s/\(.*\)/\U\1/" a.txt
作者: asnahu     时间: 2009-7-4 23:06
4楼的代码不能用塞~~-_-! 9楼的不错!