以下のバッチファイルを作成しています。
バッチファイル上にドラッグした複数のファイルをバッチファイルと同じ階層にあるフォルダ(フォルダ名COPY_FOLDER)にコピー(移動)をしたいのですが、ファイルの場所がバッチファイルと同じ階層内であったり、自分のPC上からドラッグする場合は問題なくできるのですが、違うサーバーのフォルダからドラッグした場合に処理ができません。
echoで場所を確認したいのですが、ループしたときにバッチファイルの場所がおかしくなっているような気がします。一応バッチファイルの場所を変数にもっているのですがうまくいきません。
よい方法があればアドバイスお願いします。
@echo off set "source=%~dp0" set "test=%~dp1" set "destination=%~dp0COPY_FOLDER\" :loop if "%~1" == "" goto end rem 確認用メモ echo ドラッグしたファイル: %1 echo カレントディレクトリ: %cd% echo バッチファイル場所:"%source%" echo コピー先場所:"%destination%" copy %1 "%destination%" echo ---------------------------- shift goto loop endlocal :end pause
また本来は上記の方法でなくFor文で処理を行いたかったのですが、
手始めにドラッグしたファイル名を表示させようとしたところ、一瞬コマンドプロンプトが表示されるもすぐに閉じて結果が確認できませんでした。
会社のPCではうまくいかず、自宅PCで同じバッチファイルを作成したところ無事に表示できます。
なにか原因など思い当たる点がありましたらこちらも教えていただけると助かります。
@echo off echo ------START------ for %%a in (%*) do echo ドラッグしたファイル : %%a echo ------END-------- pauseコード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。