我有一些具有相似起始名称的文件,但结尾不同。我必须为每个“系列”文件创建一个文件夹,这意味着名称以相同的7个characers开头的所有文件。
我现在的代码是
for /F "Tokens=*" %%i in ('Dir /B *.jpg') do md "%%~ni"|copy "%%i" "%%~ni"
这只是为每个文件创建一个文件夹并将其放入其中。
不幸的是我对这种语言知之甚少,只是谷歌搜索它只让我学会了如何创建一个子串SET _result=%_test:~0,7%
,而不是如何用它来创建文件夹。
我确定这只是一个短暂的序列,有人可以帮助我吗?
答案 0 :(得分:2)
这可能不是最有效的方法,但它可以帮到你。下面的批处理脚本将输入文件夹和输出文件夹作为用户的输入。然后迭代输入文件夹中的所有文件,并将它们复制到文件名前7个字符的子文件夹下的输出文件夹。
@echo OFF
setlocal ENABLEDELAYEDEXPANSION
REM Get input directory from user
set /p INPUT_DIR=Please enter full path to directory with files:
REM Get ouput directory from user
set /p OUTPUT_DIR=Please enter full path to output directory:
REM Iterate through files and create necessary folders/copy files
for /f %%f in ('dir /b %INPUT_DIR%') do (
set fullname=%%f
set trimmedname=!fullname:~0,7!
set fullpath=%OUTPUT_DIR%\!trimmedname!
if not exist !fullpath! md !fullpath!
copy %INPUT_DIR%\%%f !fullpath!
)
这是一个示例输出,显示脚本完成的处理: