
以下のバッチファイルを作成して実行したのですが、PATH_NAMEの変数が
設定されず、ファイルコピーがされません。
どのように、コードを記載すれば良いのでしょうか。
ご教授願います。
REM コピーするファイル数を設定
SET /a FILE_NUM = 2
REM コピー元のパスを設定
SET PATH_P1=C:\Copy01.txt
SET PATH_P2=C:\SAMPLE\Copy02.txt
REM 上記で設定したファイルを順番にC:\TEST\へコピーする
SET /a N=1
:LOOP
SET /p PATH_NAME = PATH_P%N%
copy %PATH_NAME% C:\TEST\
if "%N%"== "FILE_NUM " (goto EXIT)
SET /a N=N+1
goto LOOP
:EXIT
No.2ベストアンサー
- 回答日時:
ん? 手元の Vista ではそれっぽい方法できちんと設定できてます.
最初の質問にあったプログラムに
・最初に setlocal enabledelayedexpansion を入れる
・SET /p PATH_NAME = PATH_P%N% を SET PATH_NAME=!PATH_P%N%! にする
・copy を (そんなファイルは当然ないので) echo %PATH_NAME% に変更
として, PATH_P1, PATH_P2 に与えたものが表示されることは確認しています.
「これでもPATH_NAMEが設定されません。」をどう確認したのか, ちょっと気になりますが....
ありがとうございました。
結局、pita-gora様からご指摘いただいたように、「空白」が原因でした。
質問の仕方が悪く、ご迷惑をおかけしました。
No.3
- 回答日時:
こんにちは。
この行の「=」の前後の空白を取りましょう。
SET PATH_NAME = !PATH_P%N%!
↓
SET PATH_NAME=!PATH_P%N%!
空白がある場合、%PATH_NAME%ではなく、%PATH_NAME %でないと参照できませんよ。
あと
if "%N%"== "FILE_NUM " (goto EXIT)
は
if "%N%"=="%FILE_NUM%" goto EXIT
にしましょう。
pita-gora様、ありがとうございました。
おっしゃる通り、空白を取ったら、うまくいきました。
遅延展開について、最初にご教授頂いたのがTacosan 様でしたので、Tacosan 様をベストにさせていただきましたが、決定的なご指摘だったので、大変感謝しております。
ありがとうございました。
No.1
- 回答日時:
推測はできるけど一応「何をしたいのか」は書いておこうよ.
遅延展開でできると思うけど.
この回答への補足
大変失礼しました。
すでに推測していただいているとは思いますが・・・
PC上のある特定のファイルを、指定したフォルダにすべてコピーするものです。
実際には、コピーしたいファイルは順次増やしていくつもりなので、こういったコードにしました。
ちなみに、遅延展開というのは、これであっていますか?
SETLOCAL enabledelayedexpansion
SET PATH_NAME = !PATH_P%N%!
copy %PATH_NAME% C:\TEST\
ENDLOCAL
これでもPATH_NAMEが設定されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
同じファイル名 上書きしないフ...
-
Vba初心者です。下記のコード助...
-
[エクセル]コピーするとオブジ...
-
ファイルサーバ上のファイルが...
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
アクセス クエリを別のファイ...
-
バッチファイル 別ファイルにリ...
-
ハイフネーションされている英...
-
エクセル2010、図が大きすぎま...
-
パワポでスライドをコピーでき...
-
バッチファイルのコピーで
-
frxファイルの役目
-
ページの複製はどうすればいい...
-
Filecopyステートメントでエラー
-
vbsでExcelのシートをコピーす...
-
エクセルVBAで開いているファイ...
-
xcopyでのバッチコピー方法でコ...
-
開いている別のファイルにExcel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
ファイルサーバ上のファイルが...
-
Vba初心者です。下記のコード助...
-
MSオフィス2013にMS365が上書き...
-
同じファイル名 上書きしないフ...
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
frxファイルの役目
-
[エクセル]コピーするとオブジ...
-
xcopyでのバッチコピー方法でコ...
-
バッチファイル 別ファイルにリ...
-
bat 同名ファイルコピー時にリ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
vbsでファイルやフォルダのコピ...
-
マインクラフトPCをプレイしよ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
開いている別のファイルにExcel...
-
FTPとファイルコピーの違いにつ...
おすすめ情報