• ベストアンサー

bat 特定文字を含むフォルダのみコピーしたい

バッチアイルにて フォルダ名に文字■■を含むフォルダのみをコピーしたい。 教わったコードやネットで見たコードを組み合わせて以下を作りましたが、例えば次のフォルダ名は期待通りに動きません。 どう修正すればよいかお教えください。お願いいたします。 フォルダ名 A半角スペースB ⇒ コピー後 A (半角スペース以降は消えてしまう)   ********************* set PARAM=■■ set "DST=C:\コピー先のフォルダ" REM コピー先フォルダが存在しない場合は作成 IF NOT EXIST "%DST%" MKDIR "%DST%" for /f "usebackq" %%A in (`dir /ad /b %PARAM%*`) do MKDIR %DST%\"%%A"

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

  • ベストアンサー
  • luka3
  • ベストアンサー率72% (424/583)
回答No.2

すみません、空白が区切り文字になっていてトークンが分かれたせいですね。 ・トークンをひとまとめにする for /f "usebackq tokens=*" %%A in (`dir /ad /b %PARAM%*`) do MKDIR "%DST%\%%A" ・区切り文字をなしにする for /f "usebackq delims=" %%A in (`dir /ad /b %PARAM%*`) do MKDIR "%DST%\%%A" お好きな方で

gennya
質問者

お礼

回答ありがとうございます。 上手くいきました。

Powered by GRATICA

その他の回答 (1)

  • luka3
  • ベストアンサー率72% (424/583)
回答No.1

>for /f "usebackq" %%A in (`dir /ad /b %PARAM%*`) do MKDIR %DST%\"%%A" for /f "usebackq" %%A in (`dir /ad /b %PARAM%*`) do MKDIR "%DST%\%%A" 最後の方の " の位置が違います。 前のバッチでもスペースを含んだ場合を考慮して作っていたのに、なぜ変更したのだろうか。 ちなみに、「コピー先フォルダが存在しない場合」の処理は不要でした。すみません。

gennya
質問者

お礼

回答ありがとうございます。 最後の方の " の位置を修正しても半角スペースの場合は、質問したような結果となり期待通りに動きません。全角スペースの場合は正しく動きます。解決策お分かりでしたら、よろしくお願いします。

Powered by GRATICA

関連するQ&A

専門家に質問してみよう