
コマンドプロンプトでファイル名に含まれるスペースを別の文字に置換したい
BAT実行や、BATにドロップする程度の操作でファイル名置換したいと思っています。
たとえば、「abcTEST123.txt」というファイルを下記のバッチにドロップすると、
「abctest123.txt」と言うファイル名に置換されます。
for %%A in (*TEST*.txt) do call :sub %%A
:sub
set A=%1
ren %A% %A:TEST=test%
しかし「TEST」をスペースにしてもファイル名の置換はできません。
コマンドプロンプトではスペースは扱えないのでしょうか。
解決策がありましたらご教授願います。

No.1ベストアンサー
- 回答日時:
>しかし「TEST」をスペースにしてもファイル名の置換はできません。
>コマンドプロンプトではスペースは扱えないのでしょうか。
普通はその通りです。スペースは区切り文字ですので。
スペースを含むファイル名などの場合、" で囲みます。
質問文のバッチに手を加えるなら、以下のようにしたら成功しました。
--------------------
rem echo %1
for %%A in ("* *.txt") do call :sub "%%A"
goto :end
:sub
rem echo %1
set A=%1
ren %A% "%A: =T%"
:end
rem pause
--------------------
これで、
abc 123.txt を
abcT123.txt にリネームできました。
ところで、おかしな点があります。
・>ファイルをドロップ
とありますが、意味を成していません。
変数としてフルパスがバッチに渡されますが、参照する記述がないので。
・for文でファイル名を探しています。が、対象のフォルダは
バッチ起動時のパス内のみであり、ドラッグ&ドロップされたファイルのフルパスとは
無関係です。
・for 文で :sub を呼びますが、その後次行に移りますがそれが :sub です。
バッチの流れがおかしいです。(上記バッチでは修正しました)
バッチが終わるとDOS窓がすぐ閉じてしまうので、
最後にpause でも書いておくといいです。
コマンドがどのように展開されてるか、や、エラーがあればわかります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
コマンドプロンプトでリネーム
その他(コンピューター・テクノロジー)
-
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
batファイル、コマンドプロンプトでファイル名の置換
その他(プログラミング・Web制作)
-
-
4
ファイル名に空白がある時、一括削除するソフト
フリーソフト
-
5
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
6
ファイル名の -(ハイフン)を _(アンダーバー)に書き換えたい
ノートパソコン
-
7
ファイル名の空白を一括で削除したい
ホームページ作成・プログラミング
-
8
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
9
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
10
DOSコマンドのFOR文で空白を含むファイルパスの指定方法
UNIX・Linux
-
11
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
12
フォルダ作成用バッチファイル:スペースを含む名対策について
Windows Vista・XP
-
13
CSVファイルの中で、「 , 」カンマを使いたい
その他(コンピューター・テクノロジー)
-
14
echoの出力の最後のスペースを除去したい
iOS
-
15
.txtファイルの空白を全て消去(データ間を詰める)
その他(パソコン・スマホ・電化製品)
-
16
バッチで指定ファイルの文末に改行コードをつけたい
その他(コンピューター・テクノロジー)
-
17
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
-
18
コマンドプロンプトで変数内に特殊文字がある場合のエスケープ方法
Windows 95・98
-
19
複数のフォルダへ同時にファイルをコピーするには
Windows 95・98
-
20
[DOS] コピー先に同じファイル名がある場合、名前を変えて...
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
ExcelVBAのDirでスペース含むフ...
-
コマンドプロンプトでファイル...
-
word VBA ファイル名 保存
-
access,vbaでフォルダ内のファ...
-
コマンドプロンプトで変数が数...
-
【DOSバッチ開発】末尾のタブの...
-
バッチコマンドでファイル名の...
-
バッチファイルで、iniファイル...
-
前日日付のファイルGETバッチ
-
ExifToolでの文字化け対策
-
[DOS] コピー先に同じファイル...
-
フォルダ内の更新日時が一番新...
-
ファイル名に ” を使うと エク...
-
バッチ処理で16進数でファイル...
-
エクセルVBAを使用してJPGファ...
-
テキストファイルのファイル名...
-
ファイル名を該当フォルダ内か...
-
コマンドプロンプトでのCSV...
-
ファイル名を変更して移動させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
コマンドプロンプトでファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトで変数が数...
-
ExcelVBAのDirでスペース含むフ...
-
[DOS] コピー先に同じファイル...
-
ファイル名の頭5桁と同名のフォ...
-
サブフォルダからファイルをコ...
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
access,vbaでフォルダ内のファ...
-
バッチファイルで同一フォルダ...
-
バッチコマンドでファイル名の...
-
Windowsコマンドプロンプトで、...
-
スタートアップのファイルをバ...
-
ファイル名に ” を使うと エク...
-
ファイル名を該当フォルダ内か...
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
おすすめ情報