找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 17464|回复: 3

[文件操作] 批处理如何自由输入,始年,尾年,新建年代夹,然后将对应子孙件分拣入夹?

[复制链接]
发表于 2022-9-28 18:12:47 | 显示全部楼层 |阅读模式
求助如何自由输入,始年,尾年,新建年代夹,然后将对应子孙件分拣入夹?

set /p 始年= 请输入【4位数始年】:
set /p 尾年= 请输入【4位数尾年】:
mkdir 始年~尾年
。。。。
参考固定年代分拣代码如下
  1. @echo off&setlocal enabledelayedexpansion
  2. set a=2000~2008
  3. for /f "delims=" %%i in ('dir /b/s /a-d') do (
  4.     for %%j in (%a%) do (
  5.         if not exist "%%j" md "%%j"
  6.         for /f "tokens=1,2 delims=~" %%k in ("%%j") do (
  7.             set d=%%~ti
  8.             set d=!d:~0,4!
  9.             if !d! geq %%k if !d! leq %%l if not "%%i"==%0 move "%%i" "%%j"
  10.         )
  11.     )
  12. )
  13. pause
复制代码
发表于 2022-9-29 09:06:12 | 显示全部楼层
代码中尽量避免出现中文字符,那样出现问题的概率要大很多:
  1. @echo off
  2. set /p StartYear=Please Input StartYear:
  3. set /p EndYear= Please  Input  EndYear:
  4. set "TPFolder=%StartYear%~%EndYear%"
  5. md "%TPFolder%" 2>nul
  6. for /f "delims=" %%i in ('dir /b /s /a-d') do (
  7.     if not "%%i"==%0 (
  8.         for /l %%j in (%StartYear%,1,%EndYear%) do (
  9.             for /f "delims=/" %%k in ("%%~ti") do (
  10.                 if %%k equ %%j move "%%i" "%TPFolder%"
  11.             )
  12.         )
  13.     )
  14. )
  15. pause
复制代码
发表于 2022-9-29 10:49:09 | 显示全部楼层

  1. forfiles /C "cmd /c if @fdate LSS 2009 if @fdate GTR 1999 @move /y @path %cd%./2000~2008/"
复制代码
 楼主| 发表于 2022-9-29 15:05:29 | 显示全部楼层
回复 2# qixiaobin0715


    感谢答复,测试好用!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:32 , Processed in 0.017456 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表