Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何将多个文本文件移动到多个列出的目录?_File_Batch File - Fatal编程技术网

File 如何将多个文本文件移动到多个列出的目录?

File 如何将多个文本文件移动到多个列出的目录?,file,batch-file,File,Batch File,我有这个代码移动几个列出的文本文件到几个列出的目录 set /P "from=from: " set /P "to=to: " for /L %%a in (%from%,1,%to%) do move %%a.txt %%a^\file.txt echo Done.. pause;>nul 下面的文件 1.txt 2.txt 3.txt 4.txt 5.txt 被移动到下面的目录中 \1 \2 \3 \4 \5 通过将每个文件移动到同名目录,并通过执行以下命令将文本文件的名称更改

我有这个代码移动几个列出的文本文件到几个列出的目录

set /P "from=from: "
set /P "to=to: "
for /L %%a in (%from%,1,%to%) do move %%a.txt %%a^\file.txt
echo Done..
pause;>nul
下面的文件

1.txt
2.txt
3.txt
4.txt
5.txt
被移动到下面的目录中

\1
\2
\3 
\4
\5
通过将每个文件移动到同名目录,并通过执行以下命令将文本文件的名称更改为default file.txt:

move 1.txt 1\file.txt
move 2.txt 2\file.txt
move 3.txt 3\file.txt
move 4.txt 4\file.txt
move 5.txt 5\file.txt
move 1.txt 768643\file.txt
move 2.txt 234893\file.txt
move 3.txt 9890f8\file.txt
move 4.txt uk573d\file.txt
move 5.txt kiodk3\file.txt
但是我需要更新我的代码来移动下面列出的几个文本文件

1.txt
2.txt
3.txt
4.txt
5.txt
到以下列出的几个目录,其中的名称存储在一个名为列出的文本文件中。\u directories.txt

我想要一个执行命令的代码:

move 1.txt 1\file.txt
move 2.txt 2\file.txt
move 3.txt 3\file.txt
move 4.txt 4\file.txt
move 5.txt 5\file.txt
move 1.txt 768643\file.txt
move 2.txt 234893\file.txt
move 3.txt 9890f8\file.txt
move 4.txt uk573d\file.txt
move 5.txt kiodk3\file.txt
我在这里停了下来:

@ECHO OFF
setlocal EnableDelayedExpansion
color 0a
set /P "from=from: "
set /P "to=to: "
FOR /F "tokens=1 delims= " %%N IN (listed_directories.txt) DO set R=%%N & for /L %%a in (%from%,1,%to%) do move %%a.txt %%N\file.txt
echo Done..
pause;>nul

有人知道如何对批处理文件进行编码以获得所需的文件移动吗?

我希望这些代码行就是您想要的:

@回音 setlocal EnableDelayedExpansion 设置/P开始编号=从: 将/P ENDNUMBER=设置为: 设置名称文件=%STARTNUMBER%

对于/F delims=“”%%N在列出的目录中。txt DO

快走!NAMEFILE!。txt%%N\file.txt

如果!名字档案!EQU%ENDNUMBER%echo已完成其他操作 set/a NAMEFILE=!名字档案+1.

暂停>nul

这个简短的脚本允许您获得上一个示例中的内容。您尝试获得此结果(我是指另一个for循环中的for循环)会产生一个正确的递归任务,理论上我没有对其进行测试,结果是:

move 1.txt 768643\file.txt[…]move 5.txt 768643\file.txtmove 1.txt 234893\file.txt[…]移动5.txt 234893\file.txtec

@回音 SETLOCAL 设置/P从=从: 将/P设置为=设置为: 对于%1中的/L%%a,如果存在%%a.txt,则从%1%到%do 对于/f标记=1*delims=:%%r在'findstr/n/r中。q25216106.txt'DO 如果%%r==%%a ECHOmove%%a.txt%%s\file.txt 暂停 后藤:EOF 这应该是移动的 1.txt到第一行\file.txt中给定的目录 2.txt到第二行\file.txt中给定的目录 依此类推,但仅适用于指定为输入的范围内的行

所需的移动命令仅用于测试目的。验证命令是否正确后,将ECHOMOVE更改为MOVE以实际移动文件。Append>nul以抑制报告消息,例如1文件已移动


我使用了一个名为q25216106.txt的文件,其中包含您的测试数据。

非常感谢您的回复。。第二个答案很好…再次感谢你,先生。。。