cmd使用wilcard批量搜索csv

cmd使用wilcard批量搜索csv,csv,batch-file,cmd,copy,wildcard,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 %the

我有一个从数据模块导出的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内容示例(仅一列):

我要复制的文件包含的字符比csv中每行包含的字符多,这就是为什么我需要通配符搜索来定位和复制文件。文件的示例

10000,02,65 chocolate bar.jpg
10000,25,65 ice cream cone.jpg
10001,02,65 candy.jpg
....
我真的很想将JPG从一个目录复制到另一个目录,但正如您从我的csv中看到的那样,我只有与文件名匹配的产品编号,但我不知道如何在批处理中使用wilcard搜索,在csv中循环,找到每个文件并将其复制到不同的目录。我希望这一切都是有意义的,我感谢您对我的批处理问题的所有投入和支持。谢谢。

代替

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

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

编辑 嗯,它在我的电脑上运行得很好。逗号和空格的问题可以通过在Doubleqoutes(
)中包含
path\filename
来轻松解决。以下是证据:

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>
C:\Users\Stephan\CanCan>type t.bat
@回音
目录C:\users\Stephan\CanCan\New\**
设置“theDir=C:\users\Stephan\CanCan”
对于(C:\users\Stephan\CanCan\t.csv)中的/F“delims=”%%x(
复制“%theDir%\%%x***”C:\users\Stephan\CanCan\New\*.”
)
目录C:\users\Stephan\CanCan\New\**
C:\Users\Stephan\CanCan>键入t.csv
10000,02,65
10000,25,65
10001,02,65
C:\Users\Stephan\CanCan>
C:\Users\Stephan\CanCan>dir*.jpg
Laufwerk中的Datenträger C:是引导
体积:FA25-2E12
Verzeichnis von C:\Users\Stephan\CanCan
01.08.2013 18:45 6 10000,02,65巧克力棒.jpg
01.08.2013 18:45 6 10000,25,65冰淇淋筒.jpg
01.08.2013 18:45 6 10001,02,65 candy.jpg
3个日期i(en),18个字节
0 Verzeichnis(se),753.621.913.600字节frei
C:\Users\Stephan\CanCan>t.bat
Laufwerk中的Datenträger C:是引导
体积:FA25-2E12
Verzeichnis von C:\users\Stephan\CanCan\New
01.08.2013  18:52              .
01.08.2013  18:52              ..
0日期i(en),0字节
2个Verzeichnis(se),753.621.913.600字节frei
C:\users\Stephan\CanCan\10000,02,65 chocolate bar.jpg
1 Datei(en)kopiert。
C:\users\Stephan\CanCan\10000,25,65冰淇淋筒.jpg
1 Datei(en)kopiert。
C:\users\Stephan\CanCan\10001,02,65 candy.jpg
1 Datei(en)kopiert。
Laufwerk中的Datenträger C:是引导
体积:FA25-2E12
Verzeichnis von C:\users\Stephan\CanCan\New
01.08.2013  18:53              .
01.08.2013  18:53              ..
01.08.2013 18:45 6 10000,02,65巧克力棒.jpg
01.08.2013 18:45 6 10000,25,65冰淇淋筒.jpg
01.08.2013 18:45 6 10001,02,65 candy.jpg
3个日期i(en),18个字节
2个Verzeichnis(se),753.621.913.600字节frei
C:\Users\Stephan\CanCan>

只是澄清一下:您的文件名看起来像“
10000,02,65巧克力棒.jpg
”?是的,Stephan,您是对的,但我不知道整个文件名,我只知道一小部分,这是csv中给我的产品编号。然后我需要扫描目录,在文件名中找到与该产品编号匹配的内容。我希望这是有意义的。谢谢你的回复Stephan,很遗憾,是的,几乎所有的文件名都包含空格,这就是为什么我需要整理所有这些。但首先,我需要使用我的csv列表查找所有活动照片。很遗憾,我从一个不理解滥用空格的人那里接手,或者在文件名中为此添加逗号重要。我尝试了你的建议,但它一直告诉我该文件不存在,但我感谢你的回复和你的时间。路径和CSV文件名是否与硬盘中的相同?在某些情况下,你会出现错误,我们需要消除这种可能性。我不确定我是否理解你的问题foxidrive,但我会尝试解释尽可能以最佳方式。dir=C:\Web\Photos//是JPG所在的位置(也在子目录中)C:\Web\MySQL\u active\u product\u numbers.csv//在一列中包含所有产品编号。这是csv的外观:10000,02,65 10000,25,65 10001,02,65这是文件名的外观:10000,02,65 chocolate bar.jpg 10000,25,65 ice cream cone.jpg 10001,02,65 candy.jpg我正在循环浏览csv,并试图找到一个文件匹配的名称,即10000,02,65。我希望它有意义。我不确定我做错了什么,Stephan,但它现在很有魅力-你是救生员:-)非常感谢你的帮助:-)
copy "%theDir%\%%x*.*" "C:\Web\ActivePhotos\*.*"
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>