【问题标题】:Pass list of file paths to a batch file to be copied from Location A to Location B将文件路径列表传递给要从位置 A 复制到位置 B 的批处理文件
【发布时间】:2020-04-02 21:13:31
【问题描述】:

在 cmd 或 PowerShell 中批处理文件和运行命令的初学者。在编写脚本和/或生成允许我执行以下操作的批处理文件方面需要帮助:

1) 从 Excel123.xslx 的 ColumnA 中拉取文件路径列表 (List1)(包括文件名和当前保存文件的位置)和从 Excel123.xlsx 的 ColumnB 中拉取新目标文件路径的列表 (List2) (如果需要,带有旧路径和目标路径的文件可以是 CSV 或任何 txt 格式)

2) 遍历 List1 中的文件路径,并将文件从 List1 中的位置复制到 List2 中的新目标位置

简而言之,我需要将文件从 List1 中的当前位置复制到 List2 中的新目标位置。并且,如果新的目标位置包含尚不存在的文件夹和子文件夹,则需要在此过程中创建它们。

有什么建议/见解吗?谢谢!

【问题讨论】:

  • 取决于 Excel 文件的确切格式(批处理解决方案需要.csv),for /f %%a in (excel123.csv) do copy "%%~a" "%%~b" 应该可以这样做。
  • csv 文件将只是 A 列中的文件路径(即 C:\Users\xyz\Desktop\TestA.csv)和将文件复制到 B 列中的目标位置(即 C: \Users\xyz\Desktop\Dest\Tests)

标签: excel powershell batch-file cmd


【解决方案1】:

我相信您实际上希望执行以下操作:

@(SETLOCAL
  ECHO OFF
  SET "_CSV_File=C:\Some\Path\FileList.csv"
)

FOR /F "Tokens=1-2 Delims=," %%A IN ('
  Type %_CSV_File% ') DO (
  ECHO: Copying FROM: "%%~A" TO: "%%~B"
  COPY /B /V /Y /Z "%%~A" "%%~B"
)

ENDLOCAL

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    相关资源
    最近更新 更多