
バッチファイルで以下のファイル操作を行いたいです。よろしくお願いします。
■概要
テキストファイルに書かれているファイルのフルパスの途中のフォルダ名を取得して変数にしたい。
その変数のフォルダを作成し、そのフォルダにファイルをコピーしたい。
■詳細
テキストファイル内容例
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ディレクトリ名変更してコピー...
-
クラウドにあるフォルダを共有...
-
【ExcelVBA】一覧表の記載に従...
-
vbsで選択ダイアログを表示した...
-
VBScriptで空フォルダ圧縮
-
ExcelのVBAでの複数階層からの...
-
【VBS】古い日付のフォルダを削...
-
エクセルのデータをメモ帳に貼...
-
Access VBA で フォルダ権限...
-
Excel VBA マクロ リストボックス
-
サーバ内のフォルダ名と各フォ...
-
Downloaded Program Filesはど...
-
FileSystemObjectでのパス名の取得
-
Debug フォルダは消していいの?
-
あるフォルダの中にあるファイ...
-
C++Builder Ver6.0.でコンポー...
-
パス名に2バイト文字(マルチバ...
-
「フォルダの参照」ダイアログ...
-
Excelのハイパーリンクについて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
VBA フォルダ名に特定の文字を...
-
ExcelのVBAでフォルダ指定がで...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
パス名に2バイト文字(マルチバ...
-
【コマンドプロンプト】名前順...
-
【ExcelVBA】一覧表の記載に従...
-
サーバ内のフォルダ名と各フォ...
-
Wallpaper Engineでおすすめの...
-
ファイルとフォルダのどちらも...
-
Debug フォルダは消していいの?
-
Excelで指定したフォルダに保存...
-
VBプロジェクトでのフォルダ構...
-
GetAttrが原因?
-
Hitachi Embedded Workshop (HE...
おすすめ情報