痔になりやすい生活習慣とは?

BatファイルでCドライブのaaaフォルダからDドライブのaaaフォルダへファイルをコピーするxcopyの記述をしました。
xcopy c:\aaa d:\aaa /i
作成したBatファイルを実行するとループしてるのか、このコマンドが何度も繰り返され、コマンドプロンプトの×ボタンを押すまで終わりません。
コマンドプロンプトから直接xcopyを入力すると問題なくコピーされます。
どこか私の記述が間違っているのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

参考URLのようなことをしていないでしょうか?



参考URL:http://www.confrage.com/dos/batch/same-name/same …
    • good
    • 2
この回答へのお礼

Batファイルの名前をxcopy.batとつけていたのがまずかったみたいです。
コマンドプロンプトでつかうコマンドをファイル名にしてはいけないんですね。
おかげさまで解決できました。ありがとうございます。

お礼日時:2007/06/19 13:25

WinXP Pro SP2



C:\aaaに
hogefuga.txt
fugafuga.txt
という空の二つのファイルをおき
D:\aaaがある状態、ない状態両方で
xcopy c:\aaa d:\aaa /i
を書いた
C:\hoge.bat
をダブルクリックしてみましたが、全く再現しません。

#コピー元とコピー先が親子関係だったりしたらまた違うのかもしれないけど(未検証
    • good
    • 0
この回答へのお礼

Batファイルの名前をxcopy.batとつけていたのがまずかったみたいです。
ご検証ありがとうございました。

お礼日時:2007/06/19 13:22

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QXCOPYで指定したフォルダとファイルをコピーしたい

C:\AAAフォルダとC:\AAA以下のファイルをコピーしたくて、
XCOPY C:\AAA D:\BBB /E
とすると、コピー先のD:\BBBにはAAAフォルダにあるファイルはコピーされるのですが、AAAフォルダそのものはコピーされません。
XCOPY C:\ D:\BBB /E
とすればコピーできるのですが、そうするとC:\のほかのフォルダもコピーされてしまいます。
EXCLUDEオプションを使うには指定するファイルが多いため、あまり使いたくありません。(コピーする前にMDでコピー先にAAAフォルダを作成するのもなるべく避けたい)
知っている方がいらしたら教えて下さい。

Aベストアンサー

xcopy /e C:\AAA D:\BBB\AAA
複数ファイルのコピーでコピー先が存在しないとき、ファイル名と見なすかディレクトリ名と見なすか聞いてきます。

応答を聞かれるのが嫌なら
echo d | xcopy /e C:\AAA D:\BBB\AAA
でいいはず。

QバッチファイルでXCOPYコマンドが使えない

XCOPYコマンドを使ったバッチファイルを作成しましたが、
バッチファイルの保存場所によって、
実行できたり、エラーになったりします。
エラーになる場合のメッセージは以下になります。

「'XCOPY' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

環境変数の設定は問題ありません。

ご教授ください。
よろしくお願いします。

Aベストアンサー

OSや使用環境(例:ネットワークドライブを使用している…)等を書いて下さい。

>バッチファイルの保存場所によって、
>実行できたり、エラーになったりします。
エラーになった保存場所はどういう場所でしょうか?

Qxcopyで特定のファイルのみをコピーする方法

xcopyもしくはcopyコマンドを使用し、ディレクトリ内の特定のファイル(複数)を
コピーするにはどのようにしたら良いのでしょうか?

特定のファイルの数が多すぎるため、一行ずつコマンドを書くのは手間が掛るため、
何か良い方法があれば教えて頂きたいと思います。

excludeオプションを使用すれば特定のファイルを除外できるようですが、
反対の意味の特定のファイルのみをコピーしたいです。

例)
c:\test内は以下のファイルがあります。
・aaa.txt
・bbb.txt
・ccc.txt
・ddd.txt
・eee.txt

これらのファイルの内、bbb.txtとddd.txtとeee.txtをコピーしたいです。

Aベストアンサー

よくこんな感じでやってました。
バッチ用コマンドですがバッチファイルを作らずコマンドラインで実行させます。
( コピー先フォルダを C:\distdir\ とします。)

コマンドラインでこれ
for %a in ( bbb.txt ddd.txt eee.txt ) do xcopy c:\test\%a c:\distdir
を実行させると、

カッコ ( ) の中からファイル名を1個拾っては %a に代入し do 以下を実行します、
つまり以下の3コマンドに展開し1個ずつ実行します。
xcopy c:\test\bbb.txt c:\distdir
xcopy c:\test\ddd.txt c:\distdir
xcopy c:\test\eee.txt c:\distdir

尚、この場合は拡張子がいずれも txt なので、以下のように書くと文字数を若干減らせます。
1コマンドラインの文字数は限りがあるので、ファイル数が多くて他の部分を縮めたい時に有用です。
for %a in ( bbb ddd eee ) do xcopy c:\test\%a.txt c:\distdir

ところで、文法を正確に記憶してなくて恐縮ですが、
Windows 配下のコマンドプロンプトが備えるコマンドでは、
予め対象のファイル名リストをテキストファイルで作っておき、
そこからファイル名を1個ずつ拾ってコマンド実行させる事が可能です。

よくこんな感じでやってました。
バッチ用コマンドですがバッチファイルを作らずコマンドラインで実行させます。
( コピー先フォルダを C:\distdir\ とします。)

コマンドラインでこれ
for %a in ( bbb.txt ddd.txt eee.txt ) do xcopy c:\test\%a c:\distdir
を実行させると、

カッコ ( ) の中からファイル名を1個拾っては %a に代入し do 以下を実行します、
つまり以下の3コマンドに展開し1個ずつ実行します。
xcopy c:\test\bbb.txt c:\distdir
xcopy c:\test\ddd.txt c:\distdir
xcopy c:\test\eee.txt ...続きを読む

Qバッチファイル 別ファイルにリストしてあるファイルをコピーしたい

バッチファイルで、ファイル名前をリストしてあるの別ファイルを参照して、リストの名前のファイルを任意のフォルダにコピーしたいです。
●条件
・コピー元/コピー先は固定でよいです。
・できれば、コピー元のサブフォルダのファイルも対象にしたいです。
(この場合、リストにもxxx\○○○.txt のように記述)
「for」コマンドを使うのでしょうか?
宜しくお願いいたします。

Aベストアンサー

次の条件で作ってみます。

・ コピー先のディレクトリは作成済み。

・ 別ファイル(files.txt)には、各行に1つのファイルを記述。

------------------------------------------------------------
set dir1=d1 :ここコピー元のディレクトリ
set dir2=d2 :ここコピー先のディレクトリ

:
for /F %%i in ( files.txt ) do copy %dir1%\%%i %dir2%

Qバッチファイルでサーバーのファイルをクライアントへコピーしたい

サーバーに保存されているファイルを、
クライアントのCドライブへコピーしたい。

各クライアントにバッチファイルを配布して、
それを実行するだけでコピーされるようにしたいのです。

初心者で申し訳ないのですが、何卒よろしくお願いします。
------------------------

下記の記述ですと、普通にサーバーのCドライブへファイルがコピーされます。
しかし、コピー先はバッチファイルを実行したクライアントのローカルディレクトリにしたいのです。

copy \\サーバー名\フォルダ名\ファイル名 C:\

Aベストアンサー

>下記の記述ですと、普通にサーバーのCドライブへファイルがコピーされます。

そんなはずはありません。何かの勘違いでしょう。

>copy \\サーバー名\フォルダ名\ファイル名 C:\

だと、バッチファイルを実行したPCのC:\にコピーされます。

copy \\サーバー名\フォルダ名\ファイル名 C:
と、最後の \ を削れば、バッチファイルがあるのと同じディレクトリにコピーされます。

Qbatファイルの結果をテキストに吐き出すには?

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.txt
--------------------------------------
C:\>net user "test user1" ps123456 /domain
--------------------------------------

DOS画面(吐き出したいもの)
--------------------------------------
C:\>net user "test user1" ps123456 /domain
コマンドは正常に終了しました。

C:\>net user "test user2" ps456789 /domain
コマンドは正常に終了しました。

C:\>henkou.bat 1>c:\henkou結果.txt
--------------------------------------

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.t...続きを読む

Aベストアンサー

henkou.bat
--------------------------------------
@ECHO OFF

IF NOT EXIST %temp%\Redirect.txt GOTO REDIREXEC

@ECHO ON

net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain

@ECHO OFF

GOTO END

:REDIREXEC

ECHO REDIRECT > %temp%\Redirect.txt

CALL TEST.BAT > c:\henkou結果.txt

DEL %temp%\Redirect.txt

PAUSE

:END
--------------------------------------

こんな感じでどうでしょうか。

Qコマンドプロンプトによるフォルダ内のファイル存在有無

バッチ処理で、特定のフォルダ内(配下にフォルダとファイルが混在している)でファイルだけの存在有無を調べて、ファイルが存在している場合とファイルが存在していない場合で処理を別々に行わせようとしたいのですが、ファイルの存在有無はどのようにコマンドで調べれば良いでしょうか?

DIR C:\test\*.* でファイルを調べて、ERRORLEVELでif判定させようと思っているのですが、 DIRコマンドでこれを行うと、フォルダまで表示されます。

どのようにしたら良いのでしょうか?教えてください。

Aベストアンサー

コマンドプロンプトで、「DIR /?」と入力すれば、DIRコマンドのヘルプが表示されます。

その記述によれば
「/A」属性スイッチで、必要な属性を持つファイルを指定できます。

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Q特定のフォルダ内のある種類のファイルをすべてコピーし格納する方法

WINDOWSマシン使用。
あるフォルダ(AAA)の中に、複数のフォルダやファイルを含み、またそのフォルダは、
は、下位のフォルダやファイルを含むという関係が続きます。階層は4くらい。
この中の各所にあるフォルダにはwordのファイルやその他のファイルを含んで
います。
このwordのファイルだけをすべて選択しコピーして、別のフォルダ(BETU)へ
入れたい。
簡単に行なう方法、あるいはツールなどあれば紹介をお願いします。

Aベストアンサー

はじめまして。

コマンドプロンプトで
for /f "tokens=*" %i in ('dir /b /s AAA\*.doc') do copy "%i" "BETU"
を実行すれば4階層以上深くても可能です。

※"%i" "BETU"と"でくくるのは、ディレクトリ名に空白がある場合エラーとなるのを防ぐためです。

AAAもBETUもフルパスで記述すればコマンド実行ディレクトリは何処でも構いません。

QDirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)

いろいろ調べましたが不明な点があり、質問します。

WindowsのDOSプロンプトでdirコマンドを打つとフォルダ・ファイルの一覧が表示されますが、その中にファイルサイズが表示されています。
このサイズを合計できるコマンドはありませんか?
DIRコマンドのオプションを調べましたがそれらしいものが見当たりません。
具体的には
C:\xxx\配下に50個程度のファイルがあります。
その50個の合計サイズを知りたいです。
xxxフォルダの親フォルダにはアクセス不可です。

ずーっと悩んでいます。よろしくお願いします。

なお、OSはWindowsNTか2000で使用予定です。

Aベストアンサー

カレントドライブ、カレントフォルダを
C:\xxx\
にした状態で、

dir /s /a-d

/sパラメータででサブディレクトリすべてを検索
/a-dパラメータでディレクトリ以外のファイル(つまり属性に関係なくすべてのファイル

これを実行すると最後にファイルの個数とファイルサイズの合計を表示します。

もし、隠し属性のファイルは合計しないのであれば、

dir /s

だけで良いと思われます。


人気Q&Aランキング