Board logo

标题: [文件操作] 批处理如何把中文名字文件夹放到数字名字文件夹里? [打印本页]

作者: swanseabrian    时间: 2022-10-26 18:06     标题: 批处理如何把中文名字文件夹放到数字名字文件夹里?

如何把中文名字文件夹放到数字名字文件夹里
例如我文件夹名字如下 :

123456
文档
文件
日志
如何把文档,文件,日志三个文件夹

移动 到文件夹123456里去
就是如何判断这个名字里有中文 呢,

谢谢
作者: hlzj88    时间: 2022-10-26 19:59

本帖最后由 hlzj88 于 2022-10-26 20:27 编辑

这个是有个前提的,只能有一个数字文件夹。
  1. @echo off&&setlocal enabledelayedexpansion
  2. for /f %%i in ('dir /ad/b *') do (
  3. set ww=
  4. set /a ww=5%%i-22 2>nul&&set "wjj=%%i" || echo %%i>>33.txt
  5. )
  6. for /f %%i in (33.txt) do move /y %%i %wjj%\
  7. del /q 33.txt
  8. pause
复制代码

作者: pd1    时间: 2022-10-26 20:31

回复 1# swanseabrian


   只有纯数字和纯中文的文件夹吗?会不会有字母和其他的符号
作者: hfxiang    时间: 2022-10-27 11:23

判断文件(夹)路径中是否含中文,可用gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )实现:
  1. dir/b/s|gawk "{if($0~/[一-龥]/){print \"含中文\t\" $0 }else{print \"无中文\t\" $0 }}">con
复制代码

作者: swanseabrian    时间: 2022-10-27 17:11

回复 2# hlzj88


    好的,我试试
谢谢
作者: swanseabrian    时间: 2022-10-27 17:13

回复 4# hfxiang


    这个工具怎么用的,怎么用到完整代码里去?
谢谢
作者: hfxiang    时间: 2022-10-28 10:00

回复 6# swanseabrian


   
把gawk指令写进for中就能引用,以下是个比较通用的示例(太复杂,不喜欢,俺更喜欢单条指令完成工作情况)
  1. @echo off
  2. @rem 保存为ANSI格式
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%a in ('dir/s/b') do (
  5. for /f "delims=" %%b in ('echo;%%~a^|gawk "{if($0~/[一-龥]/){print 1 }else{print 0 }}"') do (
  6. if %%b EQU 1 (
  7. echo;含中文 "%%~a"
  8. ) else (
  9. echo; "%%~a"
  10. )
  11. )
  12. )
复制代码

作者: hfxiang    时间: 2022-10-28 10:20

以下引用示例就简单了许多
  1. @echo off
  2. @rem 保存为ANSI格式
  3. for /f "delims=" %%a in ('dir/s/b^|gawk "{if($0~/[一-龥]/){print \"含中文\t\" $0 }else{print \"\t\" $0 }}"') do echo;%%~a
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2