windows - 批处理文件以将每个名称的文件排列到相关文件夹中
问题描述
我有以下文件夹:
Apple_folder
Pear_folder
Tomatoes_folder
内Apple_folder
,我有以下文件:
Extracted-Apple_1.txt
Extracted-Apple_2.txt
Extracted-Pear_1.txt
Extracted-Pear_2.txt
Extracted-Apple_3.txt
Extracted-Tomatoes_1.txt
如何将Extracted-Pear_1.txt
, Extracted-Pear_2.txt
,移动Extracted-Tomatoes_1.txt
到他们的相关文件夹中,即保留包含apple
underApple_folder
等的文件名。
预期Apple_folder
内容:
Extracted-Apple_1.txt
Extracted-Apple_2.txt
Extracted-Apple_3.txt
预期Pear_folder
内容:
Extracted-Pear_1.txt
Extracted-Pear_2.txt
预期Tomatoes_folder
内容:
Extracted-Tomatoes_1.txt
我仍然是批处理脚本的初学者,所以不知道如何进行?
以下脚本不起作用。
setlocal enabledelayedexpansion
set /A counter=0
@echo off
for %%a in (*.txt) do (
for /f "tokens=2 delims=-_" %%f in ("%%a") do (
set /A counter+=1
MOVE "%%a" "C:\Users\ADMIN\Documents\TESTING\Batch_script\%%f_folder\Extracted-%%~nf_moved__!counter!.txt"
)
)
pause
解决方案
我明白了这一点。这是我一直在寻找的解决方案。它会识别文件名并检查它们是否在正确的文件夹下,如果不是,它会将它们移动到正确的文件夹下:
setlocal enabledelayedexpansion
for /R "C:\Users\Admin\Documents\TESTING\Batch_script\" %%G IN (*.txt) do (
for /F "tokens=7,12,13 delims=\-_." %%a in ("!%%G!") do (
set /A counter+=1
IF NOT %%a==%%b (MOVE "%%G" "C:\Users\ADMIN\Documents\TESTING\Batch_script\%%b_folder\MSG-Extracted-%%b_%%c_moved_!counter!.txt")
)
)
推荐阅读
- html - 单击按钮时如何显示隐藏图标并删除文本
- python - 基于df中的另一列使用python从teradata数据库中选择行
- r - 如何将使用 geom_label() 制作的标签的文本居中,其垂直位置已被 vjust 更改?(ggplot2 包)
- html - 如何防止 Swiper.js 放大 html 页面?
- spring-security - 使用 Spring Authorization Server 联合授权请求
- node.js - 如何使用节点获取
- oracle - Oracle Spatial 问题:可以使用来自另一个 Oracle 表的查询结果填充 SDO_ORDINATE_ARRAY 吗?
- sql-server - 将表从 SQL Server 传输到 Azure SQL 的最佳方式?
- scala - SBT 1.3.1 中的 OutOfMemoryError 元空间
- javascript - 如何在随机播放数组之前分配重要属性