
バッチファイルで以下のファイル操作を行いたいです。よろしくお願いします。
■概要
テキストファイルに書かれているファイルのフルパスの途中のフォルダ名を取得して変数にしたい。
その変数のフォルダを作成し、そのフォルダにファイルをコピーしたい。
■詳細
テキストファイル内容例
L:\tmp\ope\あああ\Proc\Prog000\Nordet.bbt
L:\tmp\ope\あああ\Proc\Prog001\Nordet.bbt
L:\tmp\ope\いいいい\Proc\Prog000\Nordet.bbt
L:\tmp\ope\いいいい\Proc\Prog001\Nordet.bbt
上記の各行末から1つ目と3つ目のフォルダ名を取得する。
1つ目:「あああ」「いいいい」など
3つ目:「Prog000」「Prog001」
L:\tmp\ope\XXXX までは変化する。
Proc は固定。
ProgXXX は連番(文字数固定)。
Nordet.bbt は固定。
任意のフォルダにフォルダ「あああ」を作成し、Nordet.bbtをProg000-Nordet.bbt という名称で
「あああ」にコピーする。これを各行で行う。
■試したこと(断念・・・中途半端です。)
for /f %%i in (list.txt) do (set PROC="%%i":~-19,-12% ←ProgXXX の取得
) ←XXXX の取得
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
以下のような感じでしょうか。
パスやファイル名に「%」が含まれる場合には対応していませんので、ご注意ください。
――――――――――――――――――――――――――――
@echo off
set "OutputDir=C:\コピー先フォルダ"
if not exist "%OutputDir%" md "%OutputDir%"
for /F "delims=" %%a in (list.txt) do (
call :Sub1 "%%a"
)
exit /b
:Sub1
set "FilePathTemp=%~1"
set "FilePath=%FilePathTemp:^^=^%"
set "FileNameTemp=%~nx1"
set "FileName=%FileNameTemp:^^=^%"
set "Dir1PathTemp=%~dp1"
set "Dir1Path=%Dir1PathTemp:^^=^%"
pushd "%Dir1Path%"
set "Dir1Path=%CD%"
call :Sub2 "%DIR1Path%"
exit /b 2
:Sub2
set "Dir1NameTemp=%~nx1"
set "Dir1Name=%Dir1NameTemp:^^=^%"
pushd "..\"
call :Sub3 "%CD%"
exit /b 2
:Sub3
set "Dir2NameTemp=%~nx1"
set "Dir2Name=%Dir2NameTemp:^^=^%"
pushd "..\"
call :Sub4 "%CD%"
exit /b 2
:Sub4
set "Dir3NameTemp=%~nx1"
set "Dir3Name=%Dir3NameTemp:^^=^%"
pushd "..\"
if not exist "%OutputDir%\%Dir3Name%" md "%OutputDir%\%Dir3Name%"
copy /b "%FilePath%" "%OutputDir%\%Dir3Name%\%Dir1Name%-%FileName%"
exit /b 2
――――――――――――――――――――――――――――
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URL正規化・www付き、無しそれ...
-
VB6.0 FileListBoxでフォルダ表示
-
[C#]FolderBrowserDialogのタイ...
-
ExcelのVBAでフォルダ指定がで...
-
ExcelVBAでフォルダへのハイパ...
-
Wallpaper Engineでおすすめの...
-
アクティブシートを別のフォル...
-
マクロでネットワークドライブ...
-
C#)フォルダを参照したい
-
複数階層にまたがる別名称フォ...
-
カレントフォルダって?
-
バッチファイルに詳しい方、お...
-
Windowsで任意のフォルダにある...
-
エクセルのマクロ 保存フォル...
-
フォルダの削除
-
MFC、フォルダの中のファイルパス
-
robots.txtの書き方
-
実行中にフォルダ共有を行い、...
-
Delphi ShellTreeView
-
Javaでフォルダ複数階層のZipフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
パス名に2バイト文字(マルチバ...
-
デスクトップの画像をhtmlに表...
-
【マクロ】ファイル名の日付に...
-
C ファイル出力で、フォルダが...
-
ファイル名と同名のフォルダを...
-
Excelのハイパーリンクについて...
-
VBA 最新のフォルダ取得
-
Excelで指定したフォルダに保存...
-
VBAでファイル名を指定して保存...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
excelマクロ 冒頭3文字が一致す...
-
VBA フォルダ名に特定の文字を...
-
カレントフォルダって?
-
Excel VBA マクロ フォルダ名を...
-
VBA フォルダの複数選択ができない
-
ExcelVBAでフォルダへのハイパ...
-
ExcelのVBAでフォルダ指定がで...
おすすめ情報