• ベストアンサー

batファイルUSBで始まってC:で終わりたい

USBにbatファイルを入れると私の場合 F:ドライブになります。 USBファイルにバッチファイルを入れ実行すると 最後F:¥で終わります。 それを最後を 例えばC:\ とかで終わりたい すみませんが教えてください

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

No4ですが、ちなみにですが、 wmic logicaldisk where (VolumeName='[ボリュームネーム]') get DeviceID,VolumeName,DriveType,VolumeSerialNumber /format:list とするとドライブレターが取得できます。ボリューム名を付けておけばの話です。wmic は、初めて実行する時はインストールを始めます。とでてきます。これは環境を整えるだけで、元々XP以降は設置されています。 他にも、 >echo list volum> a.txt >diskpart /s a.txt で取得可能。いずれも”管理者で実行”モードで実行する必要があります。ショートカットをUSBドライブに作っておき、Autorun.inf 等に登録するだけ まあ、BATでの起動パス取得は、簡単にできるので、あくまでも、ちなみにです。

noname#187033
質問者

お礼

いりいろ本当に有り難うございました 頭痛くなりました いっぱい出来るのですね 何度も何度も100回以上作成して試しました 回答者様の記述が参考になりました いまからも勉強していきますので どうしても help 欲しかったらおねがいしますね 本当にありがとうございました でも バッチファイルって面白いですね

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.4

>F:¥> >で終わってしまいます つまりBATファイルの実行が終了した時に、BAT起動カレントフォルーダーのままになってしまう。と言う現象ですね。 これは昔からある問題です。いくつかのやり方があり、シナリオ(操作手順や、ポリシー、ロジック)によっては、いろいろ使い分ければいいだけのこと。 >c: >cd ¥sample これは cd /d c:\sample でいいです。Windows2000以降だったと思うDオプションが付いたのは? もちろんNo3さんが示したpushud でもかまわない。 次に、 http://www.geocities.jp/is3000nx/reading/tip/misc.html を見ればわかるが、setlocal , endlocal をセットしまうと、endlocalで元の環境に戻されてしまうので、投稿の現象と同じになる。このサイトの記事は古いので、話半分に見てください。 対処法は、当然、endlocal の外、つまり、その行の次の行にcd を行えばいいことになる。 endlocalの前で行うには、あらたにCMDを起動するだけでいい。これだと、前述のsetlocal , endlocal問題でなくても、回避可能。 例: --------- - MyCD.bat - ----------------------------- @echo off setlocal rem kオプションで元に戻らない。exit とすると、元のフォルダーに戻る(元の環境に戻る)。 cmd /k cd /d c:\sample rem start コマンドを使う方法。CMDと同じ。違いは、UNIX系のシェルでの rem バックグランド実行(&)と同じ事ができる。start /? で確認を。 start /b cd /d c:\sample & exit rem 最初の物を分解しただけ。これでも目的は達成する cd /d c:\sample cmd rem これで c:\sample 配下を表示したエクスプローラーが起動してくる。 rem 素人のファイルやフォルダー処理、実行といった処理はこちらがいいでしょう。 start c:\sample endlocal ----------------------------------------------- これらは、XP以降でのコマンドプロンプトで確認しているので、それより低いバージョンの物は、自分で確認を。そうなんです、スクリプト言語もプログラム言語も、それが動作するプラットフォームを記述しないと正確な動作は述べる事はできない。 上記以外でも対処法があると思いますが、とりあえずこんな所です。 上記で、できない場合、違う要因なので、詳細に環境記載と、正確なスクリプト内容と、どのように実行しているのか、何をしているのか記載しないと解決しません。

noname#187033
質問者

お礼

>つまりBATファイルの実行が終了した時に、BAT起動カレントフォルーダーのままになってしまう。と言う現象ですね。 その通りです cd /d c:\sample でUSBホルダーは抜けました その後に cmd を入れると DOS画面で 止まります C:\sample で止まります cmdでなく c:\windows\explorer と書いたら エクスプローラーが起動して いい具合になったのですが カレントフォルダーが マイドキュメントになります でも 素晴らしい進歩です すごく勉強になりました これ きりがないですね  いりいろ有り難うございました cd /d c:\sample call c:\windows\explorer

全文を見る
すると、全ての回答が全文表示されます。
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

その.batファイルの内容を修正できる,という状況であるなら。 .batファイル内で用いているドライブ移動コマンド(F:など)や cdコマンド(chdirコマンド) を pushdコマンドに置き換え,.batファイルの最後でpopdコマンドを実行して元のフォルダに復帰する。 もし,リンク先の解説を読んでもその活用法がピンとこない初心者の方でしたら,下手に手を出さない方が安心なように思います。上記では「.batファイルの最後で」と書きましたが,最後に1回のpopdで正しいかどうか.batファイルの内容次第ですから。 http://www.atmarkit.co.jp/fwin2k/win2ktips/792pushd/pushd.html

noname#187033
質問者

お礼

batファイルの内容は修正できます cd や pushcd など入れましたが なかなかです 参考になりました ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。
  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.2

どうにもモヤッとした内容で詳細は不明だが・・・ 取りあえずバッチファイルの最後に、カレントドライブをCに戻す1行を入れれば良いんで無いのか? 「C:」てな感じで

noname#187033
質問者

お礼

説明不足でごめんなさい USBを挿入するとカレントドライブはUSBを挿入したドライブになりますよね( %0 などで判りますが) USBに入れたbatファイルを実行します。 そうするとアドレスはやっぱり 私の場合 F:¥ のままです これを C: ドライブにして終わらせたい 回答者様の言うようにbat ファイルの最後に C: とか PUSH C: とか書いても 変化ありません 回答有難うございました

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

何をいっているのか?・・ さっぱり。 >バッチファイルを入れ実行すると 最後F:¥で終わります。 Fでおわるんだね。それは、わかった。 >最後を 例えばC:\ とかで終わりた で、何がC¥でおわりたいんだい??? 何が、どうした。と言う主語、述語形式で書きましょう。 何をしているのか、わからないと、誰もどうすればC:\で終わるのかわかりません。他人にわかるように説明する所から始めましょう。とりあえず、 「USBにbatファイルを入れると私の場合」 このファイルの中身を公開しないと何をしているのか、誰にもわかりません。それとも以前、同じ内容で投稿したのかな?

noname#187033
質問者

お礼

お手間をかけて申し訳ありません 以前にbatファイルの件は投稿しましたが全く別の件です。 遠隔地にいる全くPC素人の親族のPCをサポートしたいのです。 必要なファイルをUSBに入れそれを送り、 batファイル同梱してそれを起動してもらう事で、 相手のPCに ディレクトリーを作り そこに必要なファイルをコピーして最後電話で少し相手に処理してもらおうと思います。 相手はディレクトリー移動とかエクスプローラとかファイル構造を知らないので カレントドライブを 処理するドライブにしておきたいのです --------------------------------------- USBを送り相手がPCにそのUSBを挿入すると カレントドライブはUSBを差したF:¥とかになります。 例えば abc.datというファイルをC:¥sample というホルダーを作成してそこに入れたいとします。 batファイルは md C:¥sample copy abc.dat c:¥sample c: cd ¥sample これではカレントドライブがUSBドライブのF:¥になってしまいます pushd も使ってみましたが同じです 要は 最後に相手はドライブ変更などしなくてもカレントドライブにabc.datがあって欲しいのです 即ち c:¥sample> にカーソルが来ていて欲しいのですが F:¥> で終わってしまいます 文章下手ですみません

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複数のbatファイルを自動実行したい

    複数のbatファイルがあり、それをさらにバッチ化したいのですが 1行目のbatファイルしか実行してくれません。 原因と対応をご存知であれば 教えて下さい。 以下のhhh.batを実行した場合、aaa.batしか実行してくれません。 (もちろん、単体ではそれそれ実行できます。) hhh.batファイルの中身 c:\aaa.bat c:\bbb.bat c:\cccbat

  • batファイルの相対パス

    batファイルの相対パス あるバッチが相対パスであるファイルを参照しています このバッチファイルを直接起動すれば、正しく参照できますが、 別のディレクトリにいる別のバッチファイルからcallされた場合、 呼び出し先の相対パスではなく、 呼び出し元の相対パスになってしまいファイルを参照できません。 この問題をスマートに解決する方法はありませんか? 例のchild.batからはfile.txtを参照できますが、 parent_1.bat経由の場合、ファイルが見つかりませんとなります。 child.bat の中で、「cd c:\dir_a」を書いて基点を変更すればとりあえずは行けそうですが、可能な限り絶対パスのベタ書きは避けたいです。 宜しくお願いします。 【例】 c:\ | +-dir_a | | | +-child.bat | | | +-file.txt | +-dir_b | | | +-parent_1.bat | +-dir_c | +-parent_2.bat ===== file.txt ===== test-test-test ===== file.txt ===== ===== child.bat ===== type ./file.txt pause ===== child.bat ===== ===== parent_1.bat ===== call c:\dir_a\child.bat ===== parent_1.bat =====

  • batが実行できない

    すいません、緊急で教えてください。 簡単なバッチを作成し、test.batとしてwinXPでtest.batをダブルクリックして実行しようとしましたが、 一瞬だけ黒い画面がひらいて、実行されません。 仕方なくプロンプト上で手動でtest.batを実行しようとしましたが 下記エラーでどうもtest.batの文字が認識されないようです。 C:\>r 'r' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 当方、初心者なので、調べてもわかりませんでした。 すいませんが、教えてください。

  • ホスト名をファイル名として保存するBATファイル

    Windows XP SP2 を使っています。 あるバッチを実行した後に、完了したことを確認するため、 バッチを実行したら、端末名のファイルが 自動的に作られる仕組みを考えています。 例えば、aaaa01という端末名のパソコンがあって、そこで、 a.bat というバッチファイルを実行すると、 F:\aaaa001.txt というようなファイルが自動で作成したいです。 パソコンが一杯あるので、各パソコンで実行すると、それぞれの端末名で出力ファイルになるようにしたいです。 宜しくお願い致します。

  • バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。

    バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。 バッチファイルでほかのバッチファイルを呼び出した後の処理で困っています。 どうぞ教えてください。 「A.bat」というバッチファイルを実行すると、「1.bat」というバッチファイルを 実行させ、「1.bat」の実行結果によって、処理を分岐させたいと考えています。 「1.bat」をcallで呼び出し、実行はできたのですが、「1.bat」は最後にエンタキーを 押さないと終了しないようになっています。そのため、「エンターキーを押して終了させて ください」というメッセージが出たままの画面で終わってしまい、「A.bat」に帰ってくることが できません。 「1.bat」は中身を扱えないようにしてあるバッチファイルなので、こちらでエンターキーを 押さずに終了させるようにはできません。何かいい方法はないでしょうか?

  • ファイル名を指定して、batファイルを実行したい。

    C♯、PostgresSQL環境です。 フォームのボタンを押した時、batファイルを実行したいと 考えています。 処理の内容は、DBのバックアップ・リストアです。 現在は、Process.Startを使ってバックアップ用のbatファイルを 実行していますが(処理としてはpg_dumpallをしています)、 リストア時はファイル名を指定してリストアさせたいのです。 (ファイル名を指定してリストア用batファイルを動かしたい) Process.Startの第二引数でファイル名を渡せば良いかと思ったの ですが、バッチファイルでそれを受け取って処理に入れるには どうすれば良いのでしょうか? (バッチファイルはコンソールアプリとして作ったわけではなく、 メモ帳で作成したものです) ヒントをいただけると助かります。 宜しくお願いします。

  • batファイルの作成方法について

    batファイルの作成方法について 開いてるPPTファイルを終了して(dkill.exeにて) (1) C:\dkill.exe powerpnt.exe フォルダ内のPPTファイルを全削除して (2) del /f /q C:\test\*.ppt PCをシャットダウン (3) %windir%\system32\shutdown.exe したいのですが、batファイルを作って(1)(2)(3)を並べて実行すると 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」となって (2)ファイル削除が実行できません。 それぞれ別々に実行すれば問題なく実行できます。 おそらく、(1)の処理が終了しない状態で、(2)の削除が実行できないと思うのですが・・・ この3つの処理をひとつのbatファイルで実行するにはどうしたらよいでしょうか? 初心者なのでわかりやすい回答をお願いしますm(__)m

  • batファイルに関して

    教えて下さい。 batファイルを作成し、実行しようと考えていますが、命令文 が複数あった場合、1つのbatファイルに記載する事は可能でしょうか? 例えば、  copy と pushd 等を一度に行いたい。 よろしくお願いします。

  • コマンドプロンプトで.batファイルを作っています。

    古いバックアップディレクトリを削除するバッチファイルを作りたいです。 cd /d e:\fileDir REM:【最終のディレクトリを削除】 for /F %F in ('dir /b /o:-d') do set fname=%F rmdir /s /q %fname%  をコマンドプロンプト画面に貼り付ければ上手く動作しますが*.batと名前を付けて保存したものをダブルクリックでは全く動作しません。  コマンドプロンプト上で実行するのとバッチファイルで実行することの違いについて調べてみましたがなかなか動作するものになりません。  どなたかご教示いただけないでしょうか    

  • メールでbatファイルを送り同送ファイルを複写

    早い話batファイルの作り方です、昔大いに使っていましたが今はbatファイルは使いません。 全くの素人に メールで簡単なプログラム(nPOP)を送りたいのです 送ったプログラムファイルを適当な場所に保存して動かしたいのです。   batファイルで出来ないか考えました、 メールでバッチファイルとデータファイル(又はホルダー)を添付して送り、bat ファイルを実行することで添付した他のファイルを c:\ とかに自動複写したい。 保存とかすると行方不明になります。 質問はメールに添付したファイルはどう指定すればいいのでしょうか、 batファイルも同じ場所に添付するので カレントでいいのかなあと思いましたが、ファイルが見つかりませんとなります 例えば sample.datを添付してそれをc:\に複写する場合 @echo off echo 添付した sample.dat をc:に複写します copy sample.dat c:\     ↑     添付したファイの場所はどう指定するのでしょうか pause 昔bat ファイルを作っていたのである程度判ります よろしく教えて下さい