Windows 为每个文件名创建文件夹并移动文件
我有一个批处理文件,需要根据csv文件的前几个数字对csv文件进行排序。文件位于一个文件夹中,在检测到下划线前的前几个数字后,应为其指定并设置名称,例如Windows 为每个文件名创建文件夹并移动文件,windows,batch-file,Windows,Batch File,我有一个批处理文件,需要根据csv文件的前几个数字对csv文件进行排序。文件位于一个文件夹中,在检测到下划线前的前几个数字后,应为其指定并设置名称,例如 C:\FDM\FDMConversion\890\u AMMC1\u Recording\u 2012.csv C:\FDM\FDMConversion\898000\u AMMC1\u Recording\u 2012.csv 基本上,我希望脚本选择每个文件并创建一个文件夹。 例如,要移动890_AMMC1_Recording_2012.cs
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
)
)
如果“%%a”==898000(
将永远不会为真,因为运算符的一侧被引用,而另一侧没有引用。您所说的已排序是什么意思,因为没有进行排序?请提供预期开始条件和预期结束条件的清晰示例。现在已编辑。谢谢。我已修复它。关闭括号并删除do集…您认为呢是指“脚本将提取890”?您如何处理890?它已被修复。我的意思是脚本将选择下划线前的前几个字母。
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
)
)
)