プロが教えるわが家の防犯対策術!

Windwos10で、下記のようなバッチファイル作成したいのですが、どうすれば良いでしょうか?

・フォルダ名の末尾「_files」を除いた文字列と、ファイル名が一致していたら、
ファイル名のフォルダを作成して、上記2つを中に入れたい

・作業前
hoge_files/
hoge.html

・作業後
hoge/hoge_files/
hoge/hoge.html

質問者からの補足コメント

  • うーん・・・

    ・回答ありがとうございました
    ・試してみたのですが、期待した通り動作しませんでした

    < 試した内容 >
    ・hogeフォルダ作成

    ・中に「2つのフォルダ」「2つのファイル」「1つのバッチファイル」を入れる
    ・あ_files/
    ・あ.html
    ・い_files/
    ・い.html
    ・1.bat

    ここで、1.batファイルをクリックしたのですが、何も起こりませんでした
    ・クリックしたら、下記のようになるかと思ったのですが、
    hoge/あ/あ_files/
    hoge/あ/あ.html
    hoge/い/い_files/
    hoge/い/い.html

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/09/12 10:30

A 回答 (1件)

以下のバッチファイルの内容でどうでしょうか。


(※念のため、実行前にバックアップおよびテスト環境で確認してください)

@echo off

rem --- 引数有り ---
if $$$%1 == $$$ goto unparam
set filename=%~n1_files.
if exist %filename% (goto md_move) else goto exit
goto exit

rem --- フォルダ作成&移動処理 ---
:md_move
if not exist %~n1. (md %~n1.) else goto move
rem --- 移動処理 ---
:move
echo %~n1.html と %~n1_files を%~n1へ移動します。
move %~n1.html %~n1\
move %~n1_files %~n1\
goto exit

rem --- 引数無し ---
:unparam
for %%A in (*.html) do (
call %0 %%A
)
echo ファイルを移動しました。
pause
goto exit

rem --- 終了 ---
:exit
この回答への補足あり
    • good
    • 0

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