Windows7やXPにおけるDOSコマンドで質問です。ネットワークドライブの指定なしで、カレントフォルダをPC上からローカルネットワーク上のフォルダ(例えばNASなど)に変更することは可能ですか?

現在は、自分の作成したアプリケーションから自分のPC内ファイルに対して色々タスクをこなすのにバッチファイルを書きださせて処理させているのですが、この方法ではネットワークドライブ上にあるファイルにも対応させようとした際に壁になって困ってます。
こういう時に勝手にカレントドライブを作成したりするのは強引に感じるのでできればやりたくありません。
いい方法をご存知な方よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/02/06 15:50:06
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント125pt

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


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

他1件のコメントを見る
id:taknt

http://d.hatena.ne.jp/bontaki/20060722/1153535591

pushd %~dp0

これを実行するとよいようです。

2013/01/30 16:24:28
id:halohalolin

takntさんありがとうございます!勉強になります。
是非参考にさせて頂きます。

2013/01/30 18:08:43
id:SweetSmile1978 No.2

回答回数199ベストアンサー獲得回数31

ポイント125pt

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

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

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

id:halohalolin

SweetSmile1978 さんありがとうございます。

「自分の作成したアプリケーションから自分のPC内ファイルに対して色々タスクをこなすのにバッチファイルを書きださせて処理させているのですが・・・」を満たすためには、ユーザにネットワークドライブの設定をお願いしないといけないので、今回の事情ではあまりいい手でない気がします。
(ですから「ネットワークドライブの指定なしで」というのを条件に書きました)

余談ですが、カレントドライブの変更では「cd /d」は省略可能ですね。

2013/01/31 10:36:21
id:vow No.3

回答回数21ベストアンサー獲得回数9

ポイント125pt

不可能です。

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

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

よって

  • 諦めて一時的にネットワークドライブが作成されるのを受け入れる
  • カレントドライブ/ディレクトリの移動に頼らず、都度フルパスでアクセスするように作り替える

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

id:halohalolin

ghostさんありがとうございます。

@ITの記事などを読んで勉強したいと思います。

http://www.atmarkit.co.jp/fwin2k/win2ktips/792pushd/pushd.html
pushd/popdでフォルダを移動する - @IT

2013/01/31 10:37:57
id:pretaroe No.4

回答回数531ベストアンサー獲得回数75

ポイント125pt

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

pushd \\computer1\project1\program1

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

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

-------

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

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

id:halohalolin

pretaroe さんありがとうございます。

net useでは、色々オプションが有るようですね。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060725/244263/
管理者必見! ネットワーク・コマンド集 - net useコマンド:ITpro

/delete...生成したネットワークマッピングを開放

2013/01/31 10:49:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません