繁体   English   中英

CMD-根据列表将文件移动到文件夹吗?

[英]CMD - Move files to the folders dependent on the list?

我有一个这样的内容列表(list.txt):

C:\\ Users \\ Computers \\ 39323227
C:\\ Users \\ Computers \\ 39323227.zip
C:\\ Users \\ Computers \\ 39328635
C:\\ Users \\ Computers \\ 39328635.zip
C:\\ Users \\ Computers \\ 39329113.zip
C:\\ Users \\ Computers \\ 39329288.zip
C:\\ Users \\ Computers \\ 39331075
C:\\ Users \\ Computers \\ 39331075.zip
C:\\ Users \\ Computers \\ 39331386.zip
C:\\ Users \\ Computers \\ 39904282
C:\\ Users \\ Computers \\ 39904282.zip
C:\\ Users \\ Computers \\ 39905798
C:\\ Users \\ Computers \\ 39905798.zip
C:\\ Users \\ Computers \\ 39906307.zip

父文件夹中的所有文件和创建的文件夹都像这样:

C:\\ Users \\ Computers \\ 39323227
C:\\ Users \\ Computers \\ 39328635
C:\\ Users \\ Computers \\ 39331075
C:\\ Users \\ Computers \\ 39904282
C:\\ Users \\ Computers \\ 39905798
C:\\ Users \\ Computers \\ 39323227.zip
C:\\ Users \\ Computers \\ 39328635.zip
C:\\ Users \\ Computers \\ 39329113.zip
C:\\ Users \\ Computers \\ 39329288.zip
C:\\ Users \\ Computers \\ 39331075.zip
C:\\ Users \\ Computers \\ 39331386.zip
C:\\ Users \\ Computers \\ 39904282.zip
C:\\ Users \\ Computers \\ 39905798.zip
C:\\ Users \\ Computers \\ 39906307.zip

是否可以编写CMD来将文件移动到文件夹,如下所示?

C:\\ Users \\ Computers \\ 39323227 \\ 39323227.zip
C:\\ Users \\ Computers \\ 39328635 \\ 39328635.zip
C:\\ Users \\ Computers \\ 39328635 \\ 39329113.zip
C:\\ Users \\ Computers \\ 39328635 \\ 39329288.zip
C:\\ Users \\ Computers \\ 39331075 \\ 39331075.zip
C:\\ Users \\ Computers \\ 39331075 \\ 39331386.zip
C:\\ Users \\ Computers \\ 39904282 \\ 39904282.zip
C:\\ Users \\ Computers \\ 39905798 \\ 39905798.zip
C:\\ Users \\ Computers \\ 39905798 \\ 39906307.zip

如果没有,您是否可以建议使用任何软件来帮助我解决此问题?

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION 
FOR /f "delims=" %%a IN (q22540287.txt) DO (
 IF "%%~xa"==".zip" (
rem  ECHO MD "!destdir!\" 
  ECHO MOVE "%%a" "!destdir!\"
 ) ELSE (SET "destdir=%%~dpna")
)
GOTO :EOF

我使用了一个名为q22540287.txt的文件, q22540287.txt包含用于测试的数据。

所需的MOVE命令仅仅ECHO编用于测试目的。 验证命令正确无误后 ,将ECHO MOVE更改为MOVE即可实际移动文件。 附加>nul以禁止显示报告消息(例如, 1 file moved

我添加了一行以确保所选目标目录存在。 要激活该功能,请从MD...行中移除REM 所需的MD命令只是ECHO编用于测试目的。 验证命令正确无误后 ,将ECHO MD更改为MD以实际创建目录。 附加2>nul以禁止显示错误消息(例如,当目录已存在时)

对我来说的结果(请注意,为了进行测试,我将C:更改为U: :)

MOVE "u:\Users\Computers\39323227.zip" "u:\users\computers\39323227\"
MOVE "u:\Users\Computers\39328635.zip" "u:\users\computers\39328635\"
MOVE "u:\Users\Computers\39329113.zip" "u:\users\computers\39328635\"
MOVE "u:\Users\Computers\39329288.zip" "u:\users\computers\39328635\"
MOVE "u:\Users\Computers\39331075.zip" "u:\users\computers\39331075\"
MOVE "u:\Users\Computers\39331386.zip" "u:\users\computers\39331075\"
MOVE "u:\Users\Computers\39904282.zip" "u:\users\computers\39904282\"
MOVE "u:\Users\Computers\39905798.zip" "u:\users\computers\39905798\"
MOVE "u:\Users\Computers\39906307.zip" "u:\users\computers\39905798\"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM