cmd批处理使用通配符搜索csv

时间:2013-08-01 12:35:44

标签: csv batch-file cmd copy wildcard

我有一个CSV文件,我从我们的数据模块导出,只包含产品编号。产品编号以逗号分隔,这可能是也可能不是问题(我不是程序员的好处)。我在stackoverflow找到了一个奇特的小批量,它帮助我在运行批处理时读取了csv,但是,当触发正确的命令时,我迷失了。

@echo off
set "theDir=C:\Web\Photos"
for /F "delims=" %%x in (C:\Web\MySQL_active_product_numbers.csv) do (
   copy %theDir%\%%x*.* "C:\Web\ActivePhotos\"
)

我已经使用theDir变量设置了我想要扫描的目录,而在我的csv文件中,我有一个产品编号列表。 csv内容示例(仅限一列):

10000,02,65
10000,25,65
10001,02,65
...

我要复制的文件包含的字符数多于csv中每行所包含的字符数,这就是我需要通配符搜索来查找和复制文件的原因。文件示例。

10000,02,65 chocolate bar.jpg
10000,25,65 ice cream cone.jpg
10001,02,65 candy.jpg
....

我真的想将jpgs从一个目录复制到另一个目录,但是从我的csv可以看到,我只有产品编号与文件名匹配,但我无法弄清楚如何在内部使用wilcard搜索我的批处理,循环遍历csv,找到每个文件并将其复制到另一个目录。我希望这一切都有意义,我感谢您对我的批处理问题的所有意见和支持。感谢。

1 个答案:

答案 0 :(得分:1)

而不是

copy %theDir%\%%x*.* "C:\Web\ActivePhotos\"

尝试:

copy "%theDir%\%%x*.*" "C:\Web\ActivePhotos\*.*"

(您的文件名包含空格!)

修改 好吧,它在我的电脑上运行良好。通过将path\filename括在Doubleqoutes(")中,可以轻松解决逗号和空格的问题。以下是证据:

C:\Users\Stephan\CanCan>type t.bat
@echo off
dir C:\users\Stephan\CanCan\New\*.*

set "theDir=C:\users\Stephan\CanCan"
for /F "delims=" %%x in (C:\users\Stephan\CanCan\t.csv) do (
   copy "%theDir%\%%x*.*" "C:\users\Stephan\CanCan\New\*.*"
)

dir C:\users\Stephan\CanCan\New\*.*

C:\Users\Stephan\CanCan>type t.csv
10000,02,65
10000,25,65
10001,02,65
C:\Users\Stephan\CanCan>
C:\Users\Stephan\CanCan>dir *.jpg
 Datenträger in Laufwerk C: ist Boot
 Volumeseriennummer: FA25-2E12

 Verzeichnis von C:\Users\Stephan\CanCan

01.08.2013  18:45                 6 10000,02,65 chocolate bar.jpg
01.08.2013  18:45                 6 10000,25,65 ice cream cone.jpg
01.08.2013  18:45                 6 10001,02,65 candy.jpg
               3 Datei(en),             18 Bytes
               0 Verzeichnis(se), 753.621.913.600 Bytes frei

C:\Users\Stephan\CanCan>t.bat
 Datenträger in Laufwerk C: ist Boot
 Volumeseriennummer: FA25-2E12

 Verzeichnis von C:\users\Stephan\CanCan\New

01.08.2013  18:52    <DIR>          .
01.08.2013  18:52    <DIR>          ..
               0 Datei(en),              0 Bytes
               2 Verzeichnis(se), 753.621.913.600 Bytes frei
C:\users\Stephan\CanCan\10000,02,65 chocolate bar.jpg
        1 Datei(en) kopiert.
C:\users\Stephan\CanCan\10000,25,65 ice cream cone.jpg
        1 Datei(en) kopiert.
C:\users\Stephan\CanCan\10001,02,65 candy.jpg
        1 Datei(en) kopiert.
 Datenträger in Laufwerk C: ist Boot
 Volumeseriennummer: FA25-2E12

 Verzeichnis von C:\users\Stephan\CanCan\New

01.08.2013  18:53    <DIR>          .
01.08.2013  18:53    <DIR>          ..
01.08.2013  18:45                 6 10000,02,65 chocolate bar.jpg
01.08.2013  18:45                 6 10000,25,65 ice cream cone.jpg
01.08.2013  18:45                 6 10001,02,65 candy.jpg
               3 Datei(en),             18 Bytes
               2 Verzeichnis(se), 753.621.913.600 Bytes frei


C:\Users\Stephan\CanCan>