我有一个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,找到每个文件并将其复制到另一个目录。我希望这一切都有意义,我感谢您对我的批处理问题的所有意见和支持。感谢。
答案 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>