[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何将文件名中的大写字母转换成小写字母

本帖最后由 pcl_test 于 2016-11-20 10:33 编辑

请问怎么用for循环实现文本交错排列?
例如现有从A到Z字母大写字母排列的字符串
str1=ABCDEFGHIJKLMNOPQRSTUVWXYZ
和从a到z的小写字母排列的字符串
str2=abcdefghijklmnopqrstuvwxyz
我想输出大写字母和小写字母的交错排列字符串
str3=AaBbCcDd....Zz

背景信息:我在一次转化硬盘中一个fat32分区到ntfs后,里面的一部分文件夹及其子文件夹和文件名的名称中小写字母全变大写了,我想用让大写都变小写,但是手动一个个去改肯定很麻烦,于是想到了批处理,于是通过百度来到了批处理之家。

[ 本帖最后由 lqh3417 于 2009-7-31 12:16 编辑 ]

回复 1楼 的帖子

楼主这样有意义么,不知道你想做什么。是要输出文件名还是文件名中的内容?现在的人怎么都这么懒啊,一点都不想多说,一个字都不想多打……
Still with wax

TOP

  请用详细的语言描述你的需求,如果你自己都懒于打字,别人将会比你更懒——看帖,然后关帖。另外,文本集合是什么意思?不要生造那些只有你自己才知道的词语,应该做详细解释。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

回复 1楼 的帖子

这样算是清楚明了了,但是感觉不到有什么多大意义,何不直接手动输入str3=AaBbCcDd....Zz
,因为如果用代码实现的话并不见得会比手动输入str3要简单。建议最好将你实际需求写出来,比如代码要用来处理具体的什么东西,这样才好实现。管理员不止一次强调,同样的文本处理,大文件和小文件所用的代码就不一样,效率也天差地别。所以楼主最好将自己实际情况和索要代码的背景简单陈述一下。

[ 本帖最后由 Lumiere 于 2009-7-31 11:49 编辑 ]
Still with wax

TOP

  1. @echo off
  2. set str1=ABCDEFGHIJKLMNOPQRSTUVWXYZ
  3. set str2=abcdefghijklmnopqrstuvwxyz
  4. for /l %%a in (0 1 25) do (
  5.    call set/p=%%str1:~%%a,1%%%%str2:~%%a,1%%<nul
  6. )
  7. echo.&echo.&pause
复制代码

TOP

好吧,那我就说一下我的实际需要

一次分区转NTFS后文件名都变大写了,我想用个批处理变成小写,设计到替换问题,就是A->a,B-b...但是代码不能是这种形式吧
  1. set str=[filename]
  2. for %%a in (A B C ...) %%b in (a b c ...) do
  3. set str=%str:%%a=%%b%
复制代码
所以我想看看怎么实现交错排列,用这种思想就可以实现一个for里面两个变量同时循环

[ 本帖最后由 lqh3417 于 2009-7-31 12:06 编辑 ]

TOP

回复 6楼 的帖子

1、能否把所有的问题背景和详细需求全部更新到顶楼,以便他人查看?
2、你觉得5楼的朋友看到你在6楼的回复,心里会有什么感想?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

那您就把我六楼的删了吧,详细需求都写上去那就不止是文本处理了,我怕影响分类。

TOP

回复 6楼 的帖子

晕,那你直接把“一次分区转NTFS后文件名都变大写了,我想用个批处理变成小写”写出来不就啥都完事了么?呵呵,大家都百忙活了
Still with wax

TOP

Still with wax

TOP

为什么下面代码无法逐个显示出一个目录下文件名中A替换成a的结果啊?要怎么修改才行呢?
for /f "usebackq delims=" %%b in (`dir /b`) do (
   echo %%b:A=a%%)

TOP

回复 11楼 的帖子

改成这样试试:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b') do (
  3.      set str=%%i
  4.     echo !str:A=a!
  5. )
  6. pause
复制代码
(*^_^*)

TOP

返回列表