Board logo

标题: [文件操作] 紧急求助批处理复制一定规律的文件名 [打印本页]

作者: kiwicola    时间: 2022-8-17 13:45     标题: 紧急求助批处理复制一定规律的文件名

我在001文件夹下有好几个中间有“-”的文件,但是我只想copy 某种按照一定规律为文件名的,比如:
aa-BB
df-DF
abd-c023k9.dat
我只想copy xx_XX的这种文件,应该怎么写呀, 我的好像没生效,但是也没报错。。。
  1. echo
  2. if exist C:\001\[a-z][a-z]-[A-Z][A-Z] ( copy C:\001\[a-z][a-z]-[A-Z][A-Z] C:\aaa /y )
  3. pause
复制代码

作者: flashercs    时间: 2022-8-17 14:08

  1. copy /y c:\001\??-?? c:\aaa\
复制代码
bat不支持 [a-z]通配符,powershell 才支持.
作者: qixiaobin0715    时间: 2022-8-17 14:09

  1. @echo off
  2. set lower=abcdefghijklmnopqrstuvwxyz
  3. set upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
  4. cd /d "C:\001"
  5. for /f "delims=" %%i in ('dir /b /a-d^|findstr /b "[%lower%][%lower%]-[%upper%][%upper%]\."') do (
  6.     copy /y "%%i" "C:\aaa"
  7. )
  8. pause
复制代码

作者: kiwicola    时间: 2022-8-17 14:18

回复 3# qixiaobin0715


   谢谢你,但是我运行了,没有被copy过去欸.....
作者: qixiaobin0715    时间: 2022-8-17 16:08

回复 4# kiwicola
1.你的目标文件无扩展名?
2.将批处理文件用记事本打开,另存为ANSI编码,再运行试试;
3.代码运行后有无报错信息?如果有的话发上来看看。
作者: aloha20200628    时间: 2022-8-17 18:45

@echo off
cd /d "c:\001"
for /f "delims=" %%F in ('dir/b/a-d *-*.*^|findstr /b "[a-zA-Z][a-zA-Z]\-[a-zA-Z][a-zA-Z]" ') do copy /y "%%F" "c:\aaa"
作者: aloha20200628    时间: 2022-8-17 18:51

再精确点儿...
@echo off
cd /d "c:\001"
for /f "delims=" %%F in ('dir/b/a-d *-*.*^|findstr /b "[a-zA-Z][a-zA-Z]\-[a-zA-Z][a-zA-Z][\.]*" ') do copy /y "%%F" "c:\aaa"
作者: aloha20200628    时间: 2022-8-17 19:15

:: 再改善一步...
@echo off
cd /d "c:\001"
::下式匹配 xx-yy 无扩展名文件
for /f "delims=" %%F in ('dir/b/a-d *-*.*^|findstr /b "[a-zA-Z][a-zA-Z]\-[a-zA-Z][a-zA-Z]$" ')  do (copy /y "%%F" "c:\aaa")
::下式匹配 xx-yy.* 有扩展名文件
for /f "delims=" %%F in ('dir/b/a-d *-*.*^|findstr /b "[a-zA-Z][a-zA-Z]\-[a-zA-Z][a-zA-Z][\.]" ') do (copy /y "%%F" "c:\aaa")




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