2017-04-17 150 views
0

我正在尝试查找某个文件夹及其子文件夹中的特定文件,并将它们复制到新文件夹中。我曾经为此使用这个批处理文件,但现在我得到这个错误:复制某个文件夹中的某些文件

系统找不到指定的文件。

这里的批处理文件内容:

pushd "\\internal.company.com\path\" 
md myfile 
FOR /R "\\internal.company.com\path\" %%G in (prefix_myfile*) do copy %%G "\\internal.company.com\path\myfile" 

任何输入赞赏。

UPDATE

我试图打印%%G这样的:

FOR /R "\\internal.company.com\path\" %%G in (prefix_myfile*) do echo %%G

,而且运作良好。 copy命令无法读取%%G作为参数出现问题。

回答

0

我意识到这会对我有效(在cmd执行)。但是,这似乎合理,因为我在主目录中没有任何*.txt文件。不是最好的解决方案,而是一种解决方法。

pushd "\\internal.company.com\path\" 
rem first copy the desired files (text files) to the main-folder 
for /f "tokens=*" %f in ('dir /a:-D /s /b myfile*') do copy "%f" 
rem then make a new-folder and move them to there 
md myfile 
move *.txt "\\internal.company.com\path\myfile" 

注:如果要执行这个作为一个批处理文件,你需要使用%%f而不是%f

这会将文件复制到主文件夹中,然后将它们移动到所需的子文件夹中。

0

我会改变对

... copy "%%G" ... 

这将在%%G满足空间。

也许你应该确定问题是否与for/r%%G。如果您仅用echo %%G命令显示%%G,那么您可能会看到一些问题。如果它仍然不能运行,那么for /r是问题所在。

由于您是pushd到相应的目录,所以不需要在for/r中指定目标目录。它可以被省略或由.

或许echo %cd%代替直接pushd后显示pushd是否是问题的原因。

+1

感谢您的回答。我测试了你的建议。它成功地打印出'echo%G'文件,但是当我尝试复制它们时,我得到了上述错误。 – Masoud

+0

似乎将它隔离到目标目录。建议你将其改为已知好的,看看是否有所作为。 – Magoo

+0

有道理。将尝试它。 – Masoud

相关问题