2011-03-03 143 views
0

目标重命名文件:要使用相同的名称,B列获取图像:批量查找文件,拷贝文件,然后从一个CSV

My Excel File

我现在有存储

在A列中的图像本地作为JPEGS。我也有一个需要重新命名文件的Excel文档。我想:

  1. 复制图像从文件夹中(即BEVBB48GSY1B.jpg)
  2. 重命名文件中的行文本(即BEVBB48GSY1B.jpg)下一单元格
  3. 自动移动到下一行做同样的(即BEVBB48GSY1B复制和重命名到BEV-BB48GSY1B27)

上节目我需要使用或者从哪里开始任何想法?提前致谢。

+0

因为我在那里看到'batch'标签:你想在Excel保存的CSV文件上使用批处理文件吗? – Joey 2011-03-03 16:58:08

+0

重新标记。我想你会想要使用VBScript。 – jwir3 2011-03-03 16:59:17

+0

这是一个csv这应该是太难与红宝石或Perl。 (可能任何脚本语言都可以直接做到这一点),但我确信在这两者中这将是“容易的”。 – Pablitorun 2011-03-03 16:59:29

回答

5

一个简单的批处理脚本应该这样做。

@echo off 

for /F "tokens=1,2 delims=," %%j in (your.csv) do (
    rename "path\to\images\%%j.jpg" %%k.jpg 
) 

它会为CSV的第一行(实际上是列标题)打印出一个错误。只要忽略它。

+1

您可以将'skip = 1'添加到'for'选项以避免错误。 – Joey 2011-03-03 17:55:06

+0

好吧,这工作正常,但它只是重命名,而不是先复制和粘贴,然后重命名文件。它会说它找不到文件,因为它重命名了第一个文件。任何想法如何让它复制和粘贴该文件,然后重命名它? – ToddN 2011-03-03 18:07:49

+0

我知道了我修改它做: '@回响 FOR/F “令牌= 1,2 delims =” %%的J(project.csv)做( 拷贝 “%% j.jpg” c:\ mytestproject \ newimages \t 重命名为“c:\ mytestproject \ newimages \ %% j.jpg”%% k.jpg ) – ToddN 2011-03-03 18:29:29