首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为每个文件名创建文件夹并移动该文件

为每个文件名创建文件夹并移动该文件
EN

Stack Overflow用户
提问于 2018-05-29 07:24:10
回答 1查看 74关注 0票数 0

我有批处理文件,需要根据csv文件的前几个数字对csv文件进行排序。这些文件位于一个文件夹中,在检测到下划线之前的前几个数字之后,它应该指定并设置一个名称,例如

  1. C:\FDM\FDMConversion\890_AMMC1_Recording_2012.csv
  2. C:\FDM\FDMConversion\898000_AMMC1_Recording_2012.csv

基本上,我希望脚本选择每个文件并创建一个文件夹。例如,要移动890_AMMC1_Recording_2012.csv,脚本将提取890并创建一个文件夹sample1,然后将文件移动到sample1中。要移动898000_AMMC1_Recording_2012.csv,脚本将提取898000并创建一个文件夹sample2并将文件移动到sample2文件夹

代码如下:

代码语言:javascript
复制
    set filename="C:\FDM\FDMConversion\*.csv"

for /f %%i in ('dir %filename% /b /a-d ') do (
    set "filename=%%~i"
    for /f "delims=_ tokens=1" %%a in ('echo !filename!') do (  

rem rem    set folder=%%a 

 If "%%a"=="890" ( 
set sample1=%%a
mkdir "C:\FDM\FDMConversion\!sample1!"   2>nul
for /f "delims=_ tokens=1" %%a in ('echo !filename!') do set ade=%%a

 pushd "C:\FDM\FDMConversion"
for /r %%a in ("\!ade!*.csv" ) do (
   move /Y "%%a" "C:\FDM\FDMConversion\!ade!\%%~nxa"

   )
popd
)


If "%%a"=="898000" ( 
set sample2=%%a
mkdir "C:\FDM\FDMConversion\!sample2!"   2>nul
for /f "delims=_ tokens=1" %%a in ('echo !filename!') do set ade=%%a
 pushd "C:\FDM\FDMConversion"
for /r %%a in ("\!ade!*.csv" ) do (
   move /Y "%%a" "C:\FDM\FDMConversion\!ade!\%%~nxa"

   )
popD
)

)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 08:09:08

代码语言:javascript
复制
    echo off 
SETLOCAL ENABLEDELAYEDEXPANSION



set filename="C:\FDM\FDMConversion\*.csv"

for /f %%i in ('dir %filename% /b /a-d ') do (
    set "filename=%%~i"
    for /f "delims=_ tokens=1" %%a in ('echo !filename!') do (  

rem rem    set folder=%%a 

 If "%%a"=="890" ( 

mkdir "C:\FDM\FDMConversion\sample1"   2>nul
for /f "delims=_ tokens=1" %%a in ('echo !filename!') do set ade=%%a

 pushd "C:\FDM\FDMConversion"
for /r %%a in ("\!ade!*.csv" ) do (
   move /Y "%%a" "C:\FDM\FDMConversion\sample1\%%~nxa"

   )
popd
)


If "%%a"=="898000" ( 

mkdir "C:\FDM\FDMConversion\sample2"   2>nul
for /f "delims=_ tokens=1" %%a in ('echo !filename!') do set ade=%%a
 pushd "C:\FDM\FDMConversion"
for /r %%a in ("\!ade!*.csv" ) do (
   move /Y "%%a" "C:\FDM\FDMConversion\sample2\%%~nxa"

   )
popD

)


)




   )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50578608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档