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

[文件操作] 批处理如何把中文名字文件夹放到数字名字文件夹里?

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

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

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

谢谢

本帖最后由 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
复制代码
目的,学习批处理

TOP

回复 1# swanseabrian


   只有纯数字和纯中文的文件夹吗?会不会有字母和其他的符号

TOP

判断文件(夹)路径中是否含中文,可用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
复制代码

TOP

回复 2# hlzj88


    好的,我试试
谢谢

TOP

回复 4# hfxiang


    这个工具怎么用的,怎么用到完整代码里去?
谢谢

TOP

回复 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. )
复制代码

TOP

以下引用示例就简单了许多
  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
复制代码

TOP

返回列表