2017-04-17 17 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" 

はここでバッチ・ファイルの内容です。

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

をし、それがうまく機能:

UPDATE

は、私はこのような%%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

私は%%G内のスペースに応じるでしょう

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

に変更すると思います。

おそらく、問題がfor/rまたは%%Gであるかどうかを判断する必要があります。 echo %%Gコマンドで%%Gと表示するだけで問題が発生することがあります。それでも実行されない場合は、for /rが問題です。

該当するディレクトリにpushdであるため、for/rにターゲットディレクトリを指定する必要はありません。それは省略するか、直接pushdpushdが問題の原因であるかどうかを示すために.

または多分echo %cd%に置き換えることができます。

+1

ありがとうございます。私はあなたの提案をテストしました。 'echo%G'でファイルを正常に出力しますが、コピーしようとすると上記のエラーが出ます。 – Masoud

+0

その後、それを宛先ディレクトリに隔離しているように見えます。あなたがそれを知られている良い人に変えて、それが何か変わるかどうかを見てみましょう。 – Magoo

+0

意味があります。試してみる。 – Masoud

関連する問題