人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows7やXPにおけるDOSコマンドで質問です。ネットワークドライブの指定なしで、カレントフォルダをPC上からローカルネットワーク上のフォルダ(例えばNASなど)に変更することは可能ですか?
現在は、自分の作成したアプリケーションから自分のPC内ファイルに対して色々タスクをこなすのにバッチファイルを書きださせて処理させているのですが、この方法ではネットワークドライブ上にあるファイルにも対応させようとした際に壁になって困ってます。
こういう時に勝手にカレントドライブを作成したりするのは強引に感じるのでできればやりたくありません。
いい方法をご存知な方よろしくお願いします。

●質問者: くじぇ
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● きゃづみぃ
●125ポイント

ネットワークドライブ上では ファイル操作とかのバッチファイルは 正常に動かないですよね。


具体的に何をしたいか わかれば それをテストしてみることは可能ですが。


くじぇさんのコメント
takntさんありがとうございます そうなんです、バッチファイルが正常に動かないので困っているのです 例えばアプリ内の変数に「このフォルダ内で一連の作業をするよ」というのを持たせているとします。 変数値が「c:\temp\」が指定されている場合であれば、そのフォルダにバッチファイルを書きだしたり実行するのに問題はありません。 しかし、変数値に「\\192.168.1.1\temp\」を持たせてしまうと、上記の処理がうまく稼働できないので成立しなくて困っています。 以上よろしくお願いします。

きゃづみぃさんのコメント
http://d.hatena.ne.jp/bontaki/20060722/1153535591 pushd %~dp0 これを実行するとよいようです。

くじぇさんのコメント
takntさんありがとうございます!勉強になります。 是非参考にさせて頂きます。

2 ● SweetSmile1978
●125ポイント

ネットワークの共有フォルダを
「Cドライブ」もようにドライブ文字を割り当てると可能です。

ネットワークドライブの割り当て方法(Windiws版 ※Windows7対応)
http://www.tku.ac.jp/~densan/local/n-drive/networkdrive-win.html

カレントフォルダを変更する際は、
cd /d h:
(Hドライブの場合)
と入力します。


くじぇさんのコメント
SweetSmile1978 さんありがとうございます。 「自分の作成したアプリケーションから自分のPC内ファイルに対して色々タスクをこなすのにバッチファイルを書きださせて処理させているのですが・・・」を満たすためには、ユーザにネットワークドライブの設定をお願いしないといけないので、今回の事情ではあまりいい手でない気がします。 (ですから「ネットワークドライブの指定なしで」というのを条件に書きました) 余談ですが、カレントドライブの変更では「cd /d」は省略可能ですね。

3 ● ghost
●125ポイント

不可能です。

pushd "%~dp0" ? popd を使えばネットワークドライブの作成?破棄を自動化することはできますが、ネットワークドライブの作成自体を回避できるわけではありません。一時的に作成されるネットワークドライブは普通にシステム全体から参照可能です。(とりあえず pushd /? と popd /? を読みましょう)

そもそもDOS時代からの伝統に則り、Windowsでのカレントディレクトリという概念はカレントドライブ単位で存在するものであるため、「ドライブ」がないUNCパスについてのカレントディレクトリというのは機構上あり得ないのです。まあ、将来的に「ドライブに属さないドライブ」とかいうような非実在ドライブの構文が導入されれば話は変わるかもしれませんが、今のところそんなものはありません。

よって

の二択になります。ただし後者の場合、バッチから呼び出されるコマンドの側もすべてUNCパスに対して正しく動作することが前提になりますが。


くじぇさんのコメント
ghostさんありがとうございます。 @ITの記事などを読んで勉強したいと思います。 http://www.atmarkit.co.jp/fwin2k/win2ktips/792pushd/pushd.html pushd/popdでフォルダを移動する - @IT

4 ● pretaroe
●125ポイント

■一時的にネットワークドライブを割り当てる方法

pushd \\computer1\project1\program1

ただ認証がある場合は、ダイアログとか表示されるのでバッチに向いてるかどうかは不明です。
事前に認証してある場合は、OKです。

参考:
Windowsのコマンドプロンプトを便利に使うための10のミニテクニック
http://codezine.jp/article/detail/3879?p=2

-------

■コマンドで、ネットワークドライブとして割り当てる方法

net use ドライブ文字: \\コンピュータ名\共有フォルダ名\フォルダ名 /user:ユーザー名 パスワード


くじぇさんのコメント
pretaroe さんありがとうございます。 net useでは、色々オプションが有るようですね。 http://itpro.nikkeibp.co.jp/article/COLUMN/20060725/244263/ 管理者必見! ネットワーク・コマンド集 - net useコマンド:ITpro /delete...生成したネットワークマッピングを開放
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ