
バッチ処理でファイルの差分バックアップをしていましたが、同期元のパスによって動作しないケースが発生しました。自己検討でも過去レス検索でも解決に至らなかったため、アドバイスをお願いします。
■問題1.無効なパスとしてxcopyが動作しない(Dirは共にNW上のファイルサーバ)
xcopy "%SourceDir%\" "%TargetDir%\" /D /E /C /R /Y
<動作するケースとの変化点>
1.%SourceDire%が長い(ただし255文字は超えていなかった。)
2.%SourceDire%に全角、半角スペースを含んでいたため、""で括った
■問題2.ネットワークドライブに接続することで上記パスの解決を図ろうとしたが動作しなかった
net use %Drive% %Mount%
1.%Mount%は上記の%SourceDir%
2.正常動作する%Mount%(別のファイルサーバ)の場合も %UserPwd% /user:%UserID% を付けると「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。」が出るためIDとPWDはコマンド発行せず (net useで見ても接続はされていない。)
3.%Mount%(=%SourceDir%)の指定ディレクトリの階層を変更することによって2種類のエラーが発生する。
「システムエラー53が発生しました。ネットワークパスが見つかりません。」
「システムエラー59が発生しました。予期しないネットワークエラーが発生しました。」
以上、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
>問題1
ちょっと見逃していました。
>xcopy "%SourceDir%\" "%TargetDir%\" /D /E /C /R /Y
コピー元のパス指定で最後に円マークが付くと問題が出る場合があったと思いました。
xcopy "%SourceDir%" "%TargetDir%\" /D /E /C /R /Y
又は
xcopy "%SourceDir%\*.*" "%TargetDir%\" /D /E /C /R /Y
に変更して確認して見て下さい。
もちろんSourceDir変数の内容の最後にも円マークが付かないように指定してください。
これでだめだとちょっとわからないです。
>問題3
こちらもnet useコマンドに渡すマウント位置のパス指定から最後の円マークを取り除いて下さい。
なお、
>rem set Mount=\\xxxxxxx\
この形式はnet useのコマンドシンタックス上でNGです。
net useコマンド(というかWindowsの制限)ではサーバ全体をネットワークドライブとして割り当てられないはずです。
必ずサーバ名の後に共有名を指定する必要があります。
申し訳ありませんがこれらの対処をしてどのような結果になるか確認してみて下さい。
ありがとうございます!
>問題1
「\」を失くすことで正常動作しました。
以下いずれでも問題なく動作しました。
xcopy "%SourceDir%" "%TargetDir%\" /D /E /C /R /Y
又は
xcopy "%SourceDir%\*.*" "%TargetDir%\" /D /E /C /R /Y
>問題3
こちらもやはり「\」をなくすことで、以下サーバ名の指定以外の全てのパスで正常動作しました。
set Mount=\\xxxxxxx
set Mount=\\xx.x.xx.xxx
いろいろ試したつもりが、ディレトリの表現「\」だったとは・・・。
はまっていて多分いつまでも気づけなかったと思うので、非常に助かりました。
No.2
- 回答日時:
>xcopy "%SourceDir%\" "%TargetDir%\" /D /E /C /R /Y
><動作するケースとの変化点>
>1.%SourceDire%が長い(ただし255文字は超えていなかった。)
xcopyコマンドのオプション指定がディレクトリなので、%SourceDire%が255文字ではなく実際にコピーするファイル名までを対象に考えなければならないはずです。
%SourceDire% + 配下のサブディレクトリ + ファイル名が255文字以内という条件になる思いますがそれを越えなくてもエラーとなるのでしょうか?
>2.正常動作する%Mount%(別のファイルサーバ)の場合も %UserPwd% /user:%UserID% を付けると「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。」が出るためIDとPWDはコマンド発行せず (net useで見ても接続はされていない。)
エラーの内容そのままです。
例としては、
Server1にShare1とShare2の2つの共有フォルダがある場合
クライアントからServer1のShare1にはUser1で認証し接続、Share2にはUser2で認証し接続ということは出来ません。
(もちろん同じ共有フォルダへの接続も同じです)
おそらく、この場合ログオンユーザーの権限で、%Mount%に示されるサーバーの共有リソースにアクセスしていてセッションが既に張られている可能性が高いように思います。
(net useで接続が無いのはおそらくnet useコマンドで接続をしていないから)
ログオンユーザーで別に接続しているものをやめるか、
net use で共有アクセスする権限を、ログオンユーザーを使用することを前提とするか、
などの対応が必要だと思います。
>3.%Mount%(=%SourceDir%)の指定ディレクトリの階層を変更することによって2種類のエラーが発生する。
これはちょっと内容がわかりにくです。
2.との関連があるのでしょうか?
もう少し具体的になるといいのですが。
この回答への補足
丁寧なご回答ありがとうございます!
1.ご指摘の通り、ファイル名を考慮していませんでした。。しかし、ファイル名を含めて255バイトを超えない範囲でテストしても正常動作しませんでした。→「無効なパスの指定です。」
ちなみにパス(SourceDir)は以下の通りです。(半角、全角混在。)
\\xxxxxxx\xxxx\xxxx\XXXX\xx XXXXX\xx XXXXX(XXXXXXX)\xxxXXX\xxxXX\xxXX\xxxxxxxxx XXXXXXX
2.詳しくは分かりませんが、共有ファイルサーバなので、たぶんログオンユーザでセッションがはられているのでしょうね。。(はられているセッションは全てnet useで見れるものだと思っていました・・・。)
サーバ管理は別部署となるため、アドバイス通り、ログオンユーザーを使用することを前提としようと思います。
3.具体的には、SourceDirは上記に示すパスで、エラーは以下の通りです。階層によって共有レベル(?)が異なるために発生するのでしょうか?
================================================================================
rem NG↓ システム エラー 53 が発生しました。ネットワーク パスが見つかりません。
rem set Mount=\\xxxxxxx\
rem set Mount=\\xxxxxxx\xxxx\
rem set Mount=\\xxxxxxx\xxxx\xxxx\
rem set Mount=\\xxxxxxx\xxxx\xxxx\XXXX\
rem set Mount=\\xx.x.xx.xxx\←IPで記述
rem set Mount=\\xx.x.xx.xxx\xxxx\xxxx\
rem set Mount="\\xxxxxxx\xxxx\xxxx\XXXX\xx XXXXX\xx XXXXX(XXXXXXX)\xxxXXX\xxxXX\xxXX\xxxxxxxxx XXXXXXX\"
rem set Mount="\\xx.x.xx.xxx\xxxx\xxxx\XXXX\xx XXXXX\xx XXXXX(XXXXXXX)\xxxXXX\xxxXX\xxXX\xxxxxxxxx XXXXXXX\"
rem NG↓ システム エラー 59 が発生しました。予期しないネットワーク エラーが発生しました。
rem set Mount=\\xx.x.xx.xx\xxxx\
rem set Mount=\\xx.x.xx.xx\xxxx\xxxx\XXXX\
================================================================================
ちなみに、正常動作するパス(別の共有ファイルサーバ)も階層によって以下のエラーとなります。
(OSレベルではどの階層を呼んでも、普通にエクスプローラで開けます。)
--------------------------------------------------------------------------------
rem OK↓ 正常にマウントできる
rem set Mount=\\yyyyyyyy\yyyyyyy\yyyyy\YYYYYY
rem NG↓ システム エラー 53 が発生しました。ネットワーク パスが見つかりません。
rem set Mount=\\yyyyyyyy\yyyyyyy\yyyyy\
rem set Mount=\\yyyyyyyy\yyyyyyy\
rem set Mount=\\yyyyyyyy\
--------------------------------------------------------------------------------
以上、よろしくお願いします。
No.1
- 回答日時:
■問題1.
私が以前、やってしまったのは、
%SourceDire% より %TargetDir% が長かったため、
バックアップ対象データのファイル名やディレクトリ階層により、Windowsで扱えるパスの最大長を超えてしまい、
バックアップが失敗してしまったという事がありました。
%TargetDir% は %SourceDire% と同じ長さか、短い必要があると思います。
この回答への補足
ご回答ありがとうございます!
%TargetDir% は %SourceDire%より短いです。
%TargetDir%・・・33byte
%SourceDir%・・・120byte
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- バックアップ linuxのバックアップ 2 2022/04/27 13:38
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- Visual Basic(VBA) batにて、異なるフォルダの同名ファイルを参照し、文字列を判別。擬似配列で変数へ格納 3 2022/04/10 03:37
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
osqlでデータベースにアクセス...
-
SQLネットワークエラー時の再接続
-
SQL ServerにTCP/IPで接続出来ない
-
Windows2000でMySQLを起...
-
VB.NetでSQLServer2005に接続で...
-
SQLServerへのOpen命令でのエラー
-
SQLのエラー(~付近に不適切な...
-
ACCESS2000ディスクまたはネッ...
-
有名ブランドの便座カバーて一体?
-
既定のインスタンスと名前付き...
-
ストアドプロシージャでcsvファ...
-
SQL Server 2008をインストール...
-
Excel-VBAの「しばらくお待ちく...
-
エクセルマクロで指定範囲内の...
-
Oracle 8i コンマ(,)を含むデ...
-
SQL-Loaderが動かないです。
-
【Oracle】ADOでSELECT * FROM ...
-
全ストアドを対象に文字列を置...
-
SQLCMDにて教えていただきたい...
-
下記の問合せを行うクエリを、P...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access2010 accdbのエラー「ODB...
-
SQLServerへのOpen命令でのエラー
-
SQLネットワークエラー時の再接続
-
DAOでのOpenRecordsetの方法
-
SQL ServerにTCP/IPで接続出来ない
-
SQL Server 2005 Expressでbcp...
-
SQLサーバー接続について
-
PostgreSQLと、AccessをODBC接続
-
ODBC 一般ネットワークエラー
-
osqlでデータベースにアクセス...
-
バッチ処理でファイルの差分バ...
-
ODBCによるエラー
-
ASP経由でのODBCの接続について
-
SQL Server 2008のsqlcmdコマン...
-
「ソケットの確立時にエラーが...
-
ASP.NET、SQLServerを使用してW...
-
ODBC 一般ネットワークエラー
-
ASPからOracle9iへの接続方法
-
SQLのエラーの解決方法について
-
SQLサーバに接続できません
おすすめ情報