[前の記事]« バッチファイルでデスクトップのパスを取得する方法
[次の記事]複数の%環境変数%を1行に続けて表示させるには »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
▲カテゴリー「ネットワーク(LAN)関連コマンド」索引へ

ネットワークボリューム接続された多数のドライブをバックアップするには?

572.
ネットワークボリューム接続された多くのドライブをバックアップするには?
2004年06月25日(金) 15時43分
ころ
ネットワークボリューム接続されたディレクトリ以下をバックアップするのに、以下のバッチファイルを作成したのです。

ディレクトリは数字のもの(1から9999まで)と、アルファベットで始まるものがあります。
数字のものは下記のバッチファイルでうまく動作したのですが、アルファベットのものをxcopyする術がわかりません。

どのように構文をどのように組み込めばよいかが、未熟ゆえに判りません。今一度教えていただけないでしょうか?

【例えば\\kaeru\00001~99999ディレクトリまでを自分のホストのH:\tanuki以下にコピーする


echo off
rem 1から99999までsakuseiプログラムを繰り返す
for /L %%i IN (1,1,99999) do call :sakusei 0000%%i
exit /b

:sakusei
rem グローバル変数をサブプロシジャーに引用した値を変数に代入
set i=%1
rem 5桁表示にして変数に代入
set i=%i:~-5%
rem もしディレクトリが存在したときは、コピーを行なう。コピー元ファイルがコピー先より

新しいときのみ(/d)コピーする。
if exist \\kaeru\%i% xcopy /y /s /i /d \\kaeru\%i%\* H:\tanuki\%i%\
rem サブプロシジャーからメインプログラムに帰る
goto :EOF

↑これに【\\kaeru\英語名のディレクトリ群を自分のホストのH:\tanuki以下にコピーしたい】
例)\\kaeru\appleをH:\tanuki\appleに
  \\kaeru\orangeをH:\tanuki\orangeに
574.
Re:ネットワークボリューム接続された多くのドライブをバックアップするには?
2004年06月25日(金) 20時05分
oo
>ネットワークボリューム接続されたディレクトリ以下をバックアップするのに、以下のバッチファイルを作成したのです。
(略)
>例)\\kaeru\appleをH:\tanuki\appleに
>  \\kaeru\orangeをH:\tanuki\orangeに

どうも、\\kaeru というコンピュータの共有名を全て知りたいという質問のように思えるのですが、合ってますか?そうだとすると、
net view \\kaeru
で共有名が分かるので、これを for /f %A in ('net view \\kaeru') のやり方で拾えると思いますが、書式が単純でないのでちょっと面倒そうですね。あと、アクセス権限の問題はないとおもっていいのでしょうか?
appleやorangeを含んだ上位フォルダを共有にすれば普通にXCOPYするだけになるので楽だと思いますが、そうはできないのでしょうか?
579.
単にプログラムをどう追加すればよいかがわかりません
2004年06月28日(月) 10時08分
ころ
例えば、\\kaeru以下に数字名のディレクトリと英語名のディレクトリが存在するときに、それらを自分のホストのH:\tanuki以下にコピーしたいのです。
数字名の方は以下のでうまくいったのですが、それに英語名のものもコピーするプログラムを追加したいのです。
【\\kaeru\00001~99999ディレクトリまでを自分のホストのH:\tanuki以下にコピーする


echo off
rem 1から99999までsakuseiプログラムを繰り返す
for /L %%i IN (1,1,99999) do call :sakusei 0000%%i
exit /b

:sakusei
rem グローバル変数をサブプロシジャーに引用した値を変数に代入
set i=%1
rem 5桁表示にして変数に代入
set i=%i:~-5%
rem もしディレクトリが存在したときは、コピーを行なう。コピー元ファイルがコピー先より

新しいときのみ(/d)コピーする。
if exist \\kaeru\%i% xcopy /y /s /i /d \\kaeru\%i%\* H:\tanuki\%i%\
rem サブプロシジャーからメインプログラムに帰る
goto :EOF

【\\kaeru\英語名のディレクトリ全てを自分のホストのH:\tanuki以下にコピーする


具体的にどう変えればよいか判りませんが↓のようなコマンドを追加したい
for /d %%D in (A*) do xcopy オプション %%D コピー先
585.
Re3:単にプログラムをどう追加すればよいかがわかりません
2004年06月28日(月) 23時10分
oo
574番は読んでおられますか?
「共有名」という言葉の意味がわかりますか?
586.
ごめんなさい。ちょっと理解してませんでした
2004年06月29日(火) 09時50分
ころ
ooさんがヒントを下さっていたのに、ちょっと意味を理解してませんでした。
失礼いたしました。
おっしゃる通り共有名を拾いたいだけなのですが、これをバッチファイルで具体的にどう書けば

よいのかが判りません。アクセス権は、net useでadmini権限で接続してからコマンドを走らせ

るので問題ないと思います。

\\kaeru以下のものは1000近くのドライブが共有名でネットワークボリューム接続されている状

態で、フォルダのように「全て選んでコピー」が出来ず、今回のようにバッチでやろうと思った

のです。

for /f %A in ('net view \\kaeru')を使用してXcopyで\\kaeru以下のドライブを自分のPCの
H:\tanuki以下にxコピーする方法の具体例をご教授いただければ・・と思っています。
よろしくお願いします。(m__m)
589.
Re5:ごめんなさい。ちょっと理解してませんでした
2004年06月30日(水) 00時15分
oo
>おっしゃる通り共有名を拾いたいだけなのですが、これをバッチファイルで具体的にどう書けば

>よいのかが判りません。アクセス権は、net useでadmini権限で接続してからコマンドを走らせ

>るので問題ないと思います。

>\\kaeru以下のものは1000近くのドライブが共有名でネットワークボリューム接続されている状

>態で、フォルダのように「全て選んでコピー」が出来ず、今回のようにバッチでやろうと思った

>のです。

>for /f %A in ('net view \\kaeru')を使用してXcopyで\\kaeru以下のドライブを自分のPCの
>H:\tanuki以下にxコピーする方法の具体例をご教授いただければ・・と思っています。
>よろしくお願いします。(m__m)

共有名が空白文字を含んでいないとすると、

for /f "tokens=1,2" %%A in ('net view \\kaeru') do if %%B==Disk xcopy オプション \\kaeru\%%A コピー先

です(すべての共有名を拾うため、数字の場合も含まれる)が、少なくともWin2Kのnet viewコマンドでは、共有名がある程度長いと共有名とDiskという文字が2行に分かれてしまうようなので、このように簡単には行きません。WinXPだと共有名が長くても大丈夫そうですが、私の試した範囲ではというだけです。一度net viewコマンドだけ実行してみて結果を確認ください。
共有名が空白文字を含む場合も、かなり面倒そうです。
594.
フォルダがコピーされません(;▼;)
2004年07月02日(金) 16時54分
ころ
for /f "tokens=1,2" %%A in ('net view \\kaeru') do if %%B==Disk xcopy オプション 

\\kaeru\%%A コピー先
このバッチファイルは感動しましたが、これでやると\\kaeru以下の格ドライブを通り越して中

身をコピー先にバックアップしてしまいました。
例えば\\kaeru\00001や\\kaeru\00300や\\kaeru\tanukiなどをH:\kaeru以下に
H:\kaeru\00001、H:\kaeru\00300、H:\kaeru\tanukiという相当のフォルダで保存したいのです

が、いきなりH:\kaeru以下にそれぞれの中身がそのままコピーされてしまいます。
596.
Re7:フォルダがコピーされません(;▼;)
2004年07月03日(土) 00時47分
oo
>for /f "tokens=1,2" %%A in ('net view \\kaeru') do if %%B==Disk xcopy オプション 

>\\kaeru\%%A コピー先
>このバッチファイルは感動しましたが、これでやると\\kaeru以下の格ドライブを通り越して中

>身をコピー先にバックアップしてしまいました。
>例えば\\kaeru\00001や\\kaeru\00300や\\kaeru\tanukiなどをH:\kaeru以下に
>H:\kaeru\00001、H:\kaeru\00300、H:\kaeru\tanukiという相当のフォルダで保存したいのです

>が、いきなりH:\kaeru以下にそれぞれの中身がそのままコピーされてしまいます。

XCOPY に /I オプションをつけて、コピー先として H:\kaeru\%%A\ を指定すればいいのではないでしょうか。ご自分で書かれた数字共有名の場合にはそのようになってますよね。
597.
Re8:ありがとうございました
2004年07月05日(月) 10時25分
ころ
ooさん。有難うございます。コピー先の変数名指定のところを%%Aでなくて%%Bにしていたのでうまくいかなかったみたいです。
出来ました~~
お世話になりました。
 
 


カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
カテゴリー「ネットワーク(LAN)関連コマンド」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年06月25日 07:58に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチファイルでデスクトップのパスを取得する方法」です。

次の投稿は「複数の%環境変数%を1行に続けて表示させるには」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート