Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 将图像从txt列表复制到文件夹_Batch File - Fatal编程技术网

Batch file 将图像从txt列表复制到文件夹

Batch file 将图像从txt列表复制到文件夹,batch-file,Batch File,我在一个文件夹中有15000多个图像文件。我需要找到一个.txt文件中的文件,然后将它们复制到另一个文件夹 for /f "delims=" %a in (C:\Users\Paul\Desktop\list3.txt) do ( for /r "C:\Users\Paul\Desktop\Rala Upload\Rala Images 2" %b in ("%a*") do ( copy "%~Fb" C:\Users\Paul\Desktop\DestinationF

我在一个文件夹中有15000多个图像文件。我需要找到一个.txt文件中的文件,然后将它们复制到另一个文件夹

for /f "delims=" %a in (C:\Users\Paul\Desktop\list3.txt) do (
    for /r "C:\Users\Paul\Desktop\Rala Upload\Rala Images 2" %b in ("%a*") do (
        copy "%~Fb" C:\Users\Paul\Desktop\DestinationFolder
    )
)

这会运行,但目标文件夹中没有图像。有人能保存我的发际线吗?我完全不熟悉cmd和批处理文件,所以请原谅我是一个空荡荡的人,我会选择这样的方式:

@echo off
REM setup some variables
set file_list=C:\Users\Paul\Desktop\list3.txt
set target_dir=C:\Users\Paul\Desktop\DestinationFolder

for /f "tokens=*" %%i in (%file_list%) do (
   REM remove the ECHO here if output looks good
   echo copy "C:\Users\Paul\Desktop\Rala Upload\Rala Images 2\%%i" %target_dir%
)
echo.
echo Done!

运行该命令,并检查输出。如果输出看起来不错,请删除复制行上的
echo
,这将真正激活脚本。在这样的小脚本上,
echo
在尝试实际操作之前,首先调试输出是一种更安全的方法。

您知道,在批处理脚本中,
for
循环变量需要两个百分比<代码>用于/f“delims=“%%a in…等。你能发布几行你的.txt文件的内容吗?B101F_Fuchsia_FT BA407_Black_FT BA407_DarkGrey_FT BA407_Navy_FT BA802_RawBlue_FT BA804_DeepBlueDenim_FT BA851_Black_FT这是我的txt文件中的几行,它们在单独的行上是%%这意味着当我放置双精度%%时,我得到的%%是意外的,他是指当你使用变量时。你应该使用
%%a
而不是
%a
(和
%%b
而不是
%b
)。为什么你需要一个嵌套的
for
循环?我在一个批处理文件中运行它,但在cmd提示符下运行时,目标文件夹中没有显示任何内容。此时,在for/f“tokens=*”%I下面出现了意外情况(%file_list%)正如另一位评论员所说,您在批处理文件中使用
%%i
,并在命令行上使用
%i
。将上面的代码粘贴到一个文件中,将其另存为
copybat.bat
,然后在命令行上运行。如果您没有看到任何内容,尤其是“完成”输出,那么您的环境就有一个更大的问题。哦,正如@Stephan提到的,如果您想让它真正复制文件,您需要删除回音。我提供了惰性版本,以便您可以在运行它之前检查它(正如我的笔记所说)。出于安全原因,我们倾向于“取消武装”潜在危险的命令,通过
echo
在屏幕上显示它们,而不执行它们。如果输出正常,请删除
copy
前面的
echo
,对,我在cmd提示符下这样做了,得到了一个滚动的黑框,然后在最后完成了。我删除了echo,得到了相同的结果,但在目标中仍然没有任何结果n文件夹我将其保存为一个批处理文件单击,得到一个非常快速的框,然后出现,然后消失了任何想法,因为我现在只是跟随并尝试边走边学习:-)文件名、目录名或卷标语法不正确。是味精下面的每个文件,它尝试,但名称是正确的啊!现在我筋疲力尽了