こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

batでファイルをコピーして名前を変更

Aフォルダに
修正指示26-23.xls
というファイルがあります。
このファイルをドラック&ドロップでbatファイルに投げ込み
Aフォルダ内にコピーし、そのコピーした方のファイル名を
abc〇〇〇.xlsというファイル名に変更したいです。
〇〇〇の部分はINPUTBOXのようなものが表示されて
自分で入力をできるようにしたいです。
INPUTBOXのようなものが表示されなくても、〇〇〇の部分だけ自分で入力すれば前部分のabcは固定でつけばokです。

batで無理であればVBSでもいいです。

なにかいい方法があれば教えてください。

投稿日時 - 2018-10-31 18:52:55

QNo.9553214

すぐに回答ほしいです

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

こんな感じ?
------------------
@echo off
set /p ustr="入力>: "
copy %1 abc%ustr%.xls
------------------

投稿日時 - 2018-10-31 19:59:14

お礼

こんなにシンプルなコードなのですね。
驚きです。
目的のことが果たせました。
ありがとうございました。

投稿日時 - 2018-10-31 23:13:55

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

「VBScript」による回答です。

質問の内容では、同じフォルダ内にコピーファイルを作成する、ということでよろしいでしょうか?

Option Explicit
Dim f, i, n, so, wa
Set so = CreateObject("Scripting.FileSystemObject")
Set wa = WScript.Arguments
n = InputBox("ファイル名を入力してください")
f = so.GetParentFolderName(wa(0))
For i = 0 to wa.Count - 1
If LCase(so.GetExtensionName(wa(i))) = "xls" Then
so.CopyFile wa(0), f & "\abc" & n & ".xls", True
End If
Next
Set wa = Nothing
Set so = Nothing

簡単な説明です。

Option Explicit

「厳密に」というような意味ですが、気にしないでください。

Set so = CreateObject("Scripting.FileSystemObject")

ファイルやフォルダを扱えるようにしています。

Set wa = WScript.Arguments

ドラッグ&ドロップされるのを待っています。

n = InputBox("ファイル名を入力してください")

「〇〇〇」の部分を入力。

f = so.GetParentFolderName(wa(0))

ドラッグ&ドロップされたファイルが存在するフォルダを調べています。

For i = 0 to wa.Count - 1

ドラッグ&ドロップされたファイルを1つずつ処理。

If LCase(so.GetExtensionName(wa(i))) = "xls" Then

もし、拡張子が「xls」なら、

so.CopyFile wa(0), f & "\abc" & n & ".xls", True

同じフォルダ内に「abc〇〇〇.xls」という名前でコピーしています。

End If
Next

を、ドラッグ&ドロップされたファイルの数だけ処理しています。

Set wa = Nothing
Set so = Nothing

あとは、終了処理です。

投稿日時 - 2018-10-31 22:17:46

お礼

まさに求めていたことができました。
ありがとうございます。

投稿日時 - 2018-10-31 23:12:47

あなたにオススメの質問