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

批处理中的 dir /b d:\test\????????.txt 默认搜索 0-8 个字符(包括8.3格式的短文件名),超过8个字符的短文件名一般都小于等于8个字符,实际上所有txt文件都被搜索出来了。

可以这样:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b D:\Test\*.txt') do (
  3.         set "s=%%~ni"
  4.         setlocal enabledelayedexpansion
  5.         if "!s:~8!" == "" if not "!s:~7!" == "" echo;!s!%%~xi
  6.         endlocal
  7. )
  8. pause
复制代码
也可以这样:
  1. PowerShell -c "(dir -Path D:\Test\????????.txt).Name"
复制代码
或者这样:
  1. @if (0)==(0) echo off
  2. dir /b *.txt | cscript //nologo //e:jscript "%~f0"
  3. pause & exit
  4. @end
  5. WSH.StdOut.Write(WSH.StdIn.ReadAll().match(/^.{8}\.txt\r\n/gmi).join(''))
复制代码
如果不包含中文字符可以这样:
  1. dir /b D:\Test\*.txt | findstr /i "^........\.txt$"
复制代码
1

评分人数

TOP

返回列表