batch - 从文件读取文件路径并将其用作next for循环中的文件路径

时间:2014-12-09 17:09:30

标签: batch-file

如何从.txt文件中读取一行并将其用作next for循环中的路径。 .txt文件如下所示:

C:\Users\User\Desktop\kaust 1
C:\Users\User\Desktop\kaust 2


for /F %%A in (C:\Users\User\Desktop\asd.txt) do (
  for /R "%%A" %%f in (*) do (
   copy "%%f" "C:\Users\User\Desktop\New folder\1\"
  )
)

脚本的想法是使用文件路径作为文件夹并从中获取文件及其子文件夹,并将这些文件复制到另一个文件夹中,因此所有文件都在没有子文件夹的相同位置。

这是一个错误,它说:

C:\Users\User>(for /R "%A" %f in (*) do (copy "%f" "C:\Users\User\Desktop\New folder\1\" ) ) 

所以它没有把%% A作为变量。

1 个答案:

答案 0 :(得分:2)

当您用作FOR参数时,您正在经历一个非常棘手的解析FOR和扩展%% A变量的行为。

您最好尝试使用PUSHD %%a更改当前目录,并在当前目录上调用FOR来尝试解决方法。

for /F %%A in (asd.txt) do (
  pushd %%A
  for /R %%f in (*) do (
    echo %%f
  )
  popd
)