我是批处理新手,只对基本知识有了基本的了解。
我有数百个文件要根据名称排序到文件夹中。文件名的一个例子是:
346479_2009-01-01_2009-12-31_Distribution_Report
例如,2009年到2014年有2个分发报告(一个pdf,在csv上),我想将所有分发报告移动(或复制,并不重要)到一个文件夹,标记为分发报告。
如果有人可以提供帮助,我会非常感激!
我正在处理这个post,但没有太多运气......这就是我所得到的,我不认为这一切都是正确的:
@ECHO OFF
SETLOCAL
SET "sourcedir=C:\Users\emcaleer\Desktop\New folder"
PUSHD %sourcedir%
FOR /f "tokens=1*" %%a IN (
'dir /b /a-d "*_*_*-*-*-*_*-*-*-*_"'
) DO (
MD %%a
MOVE "%%a %%b" .\%%a\
)
POPD
GOTO :EOF
答案 0 :(得分:0)
for
语法对于初学者来说可能有点混乱。您指定了标记,但没有分隔符。由于字符串中没有默认分隔符,因此第二个标记永远不会获得任何值。试试这个:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /a-d *_*_*_*.*') do (
set file=%%~ni
set folder=!file:*-31_=!
md !folder! 2>nul
move "%%i" !folder!
)