• ベストアンサー

バッチファイルで配列を使いたい

バッチファイルで配列を使いたいと考えていますが、可能でしょうか。 イメージとしては、 set a1=a set a2=b set a3=c set a4=d set a5=e mkdir a1からa5 とすると、 a,b,c,d,eのフォルダが作成できるような感じです。 可能でしょうか。 よろしくお願いします。

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

  • ベストアンサー
回答No.1

無理じゃないかな、多分。 #繰り返し処理を行ないたいときは、ファイル名のリストだけ別ファイル(hoge.txt)に作っておいて for %%x in (hoge.txt) do mkdir %%x とかやりますかね。

smorgas030
質問者

お礼

ありがとうございます。 for %%x in (hoge.txt) do mkdir %%x 早速やってみましたが、 hoge.txtのフォルダが作成され、hoge.txtの中のリストのフォルダは作成されませんでした。 何か違ってますでしょうか。 よろしくお願いします。

smorgas030
質問者

補足

for /f %%x in (hoge.txt) do mkdir %%x /fを加えたら解決しました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.3

バッチは簡単な制御しかできないので、プログラムっぽい感覚を 持ち込まないほうが良いですよ。 バッチより、Scriptを使うほうが、ずっと小回りが利きます。 http://msdn.microsoft.com/ja-jp/library/cc392489.aspx http://msdn.microsoft.com/ja-jp/library/cc427807.aspx ファイル系操作はFileSystemObjectでフォルダの作成ができます。 http://msdn.microsoft.com/ja-jp/library/cc428071.aspx

smorgas030
質問者

お礼

ありがとうございます。 VBSで試してみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

おそらくですが,for に /f のスイッチを付けていないのが原因では?

smorgas030
質問者

お礼

ありがとうございました。 解決しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バッチファイルの使い方について

    このサイトで、両面スキャンした画像ファイルを表面と裏面を別々のフォルダに振り分ける方法を質問して、バッチファイルを使う方法を教えてもらったのですが、上手くいきません。バッチファイルを使うのは初めてなので、どこかまずいところがあるのかと思います。 教えていただいた下記のものそのままでバッチファイルを作り、画像ファイル(jpg)を格納したフォルダに置いてダブルクリックすると、「1」「2」のフォルダができるだけで、画像ファイルは移動せず、2つのフォルダは空のままです。 どこを直せばよいのか教えてください。よろしくお願いします。 set N=1 mkdir 1 mkdir 2 for %%I in (*.jpg) do call :sub %%I goto :EOF :sub move %%I %N% set /a N=3-N goto :EOF

  • バッチファイルを作りたい。

    こんにちは いまある作業をしていて、どうにか自動化できないかと調べていたら、 バッチファイルというものがあると知りました。 バッチファイルに、ファイルをドロップすると、そのファイルの名前のフォルダが作成され、 そのフォルダの中に、B,Cの2つのフォルダ、さらにフォルダBのなかに B1、B2、B3、B4の4つのフォルダが作成される。 というバッチファイルを作りたいです。 また、一度に複数のファイルをドロップしても、動くようにしたいです。 どなたか詳しい方、教えてください。 よろしくお願いします。

  • バッチファイルの記述について

    CドライブにあるAとBのフォルダをMO(E)にコピー(MOが入っているか確認をさせてから、上書き保存)するバッチファイルを書きたいのですがどのように記述したらよいのでしょうか?。DOSの知識が無いのでよろしくお願いいたします。 AとBがDドライブにあった場合も併せてお願いいたします。

  • バッチファイルへのD&D

    バッチファイルを作成して、以下の作業の効率化を図ろうと考えていますが、初心者のため、上手くいきません。 アイディアの可否を含めて、参考になるサイト、例文など教えてください。 環境はWindows Xp SP3です。 [作業] 1.バッチファイルに任意のフォルダAをD&Dする 2.フォルダA内にフォルダB-1を作成する。 3.作成したB-1に、フォルダA内の[.jpg]ファイルを移動する 以上 フルパスを指定してのバッチファイルなら自分でも何とか作成できるのですが、 このアイディアのは全くできませんでした。 よろしくお願いします。

  • バッチ・ファイル中で時間をファイル名に使用したいです。

    いつもお世話になっております。 バッチ・ファイルを使用して、「netstat」コマンドの結果をファイルにリダイレクトし、そのファイル名に時間を使用したいです。 いま、使用しているファイルは、「バッチファイルA」と「バッチファイルB」の2つがあります。 「バッチファイルA」は0時~9時まで、「バッチファイルB」は10時~24時までとなっています。これを、1つのファイルにまとめたいのですが、よろしくご教示をいただけませんでしょうか。 --------------------------- @「バッチファイルA」(0時~9時) set TIME_A=%TIME% set TIME_B=%TIME_A:~1,4% set TIME_B=%TIME_B::=% set FILENAME=%TIME_B% netstat -s -e >C:\Temp\%FILENAME%.txt --------------------------- --------------------------- @「バッチファイルB」(10時~24時) set TIME_A=%TIME% set TIME_B=%TIME_A:~0,5% set TIME_B=%TIME_B::=% set FILENAME=%TIME_B% netstat -s -e >C:\Temp\%FILENAME%.txt ---------------------------

  • バッチファイルで同じフォルダ名がある場合

    バッチファイルで下記のように実行後にフォルダ名を指定して フォルダを作成したいのですが既に同じフォルダ名があった場合 同じフィルだがある旨のメッセージを表示するのとそこでバッチファイルを 終了してよいか?というようなバッチファイルを作成したいのですが バッチファイルコマンドプロンプトの知識があまりありません。 どなたか教えてください。 echo off set /p USER_INPUT=フォルダ名を入れてください。: mkdir %USER_INPUT%

  • 1つ下のファイルをコピーするバッチファイル

    コマンドプロンプトで実行するバッチファイル(x.bat)で C:\Aというフォルダのさらに1つ下のフォルダ (このフォルダは1つのみで名前は毎回変化します) の中にあるc.mpgというファイルを D:\Bフォルダにコピーするバッチファイルを 作りたいのですがどのように記述すればよいのでしょうか。 例えば、C:\A\data_20120922195626というフォルダ (data_20120922195626というフォルダ名は任意の名前ですが C:\Aフォルダの中にはこのフォルダ1つしかありません) の中に\c.mpgというファイルがあるとします。 バッチファイル x.bat を実行すると D:\Bフォルダにc.mpgをコピーしたいのです。 なお、data_20120922195626というフォルダの名前は バッチファイルを実行する時には毎回異っていますが バッチファイル実行中は変化しません。 VBscriptやwshなどは使わずWindosXPの標準DOS機能のみで お願いします。(WindosXP SP3)

  • バッチファイルのコマンドについて

    Cドライブにフォルダ【TMP】があります。このフォルダには毎日、日付けの名称のフォルダ(ddmmyyyy)が一つ作成されます。C:\TMPにあるサブディレクトリを、Dドライブ【BAK】フォルダに移動するバッチファイルを作成したいのですが、どのようなコマンドを記述すればいいのでしょうか。 set dir1=c:\tmp\* set dir2=d:\bak move "%dir1%" "%dir2%" 上記では、tmpのファイルのみしか移動出来ません。また、d:\bakに移動したフォルダを定期的に削除したいのですが(作成後、一ヶ月以上経過したフォルダ)どのようにdelコマンドを記述すればいいでしょうか。 宜しくお願いします。

  • フォルダごとのファイル数を数えるためのバッチ

    フォルダごとのファイル数を数えるためのバッチをネットで調べて作成しました。 このバッチファイルを親フォルダ直下に配置し、ダブルクリックで実行しています。 ------------------------------------------------------------------------- @echo off setlocal enabledelayedexpansion set /a counter=0 dir %1 /ad /s /b >trash.csv for /f "tokens=1 delims=," %%i in (trash.csv) do ( set /a counter = 0 for %%A in (%%i\*) do ( if exist %%A ( set /a counter=counter+1 ) ) echo %%i : !counter! ) ------------------------------------------------------------------------- しかし、結果は、フォルダ名は取得していますが、ファイル数が取得できていません。 こんな感じです。 setlocal コマンドに無効なパラメータが指定されました d:\画像\フォルダ1 = 0 d:\画像\フォルダ2 = 0 d:\画像\フォルダ1\フォルダ3 = 0 どたなかどこが間違っているのかご指摘ください。

  • バッチファイル、変数について

    windows2012R2で下記のようなバッチファイルを作成しました。 --------------- Set YYYY=%Date:~0,4% Set MM=%Date:~5,2% Set DD=%Date:~8,2% Set File=%YYYY%%MM%%DD% mkdir G:\bbb\xx1_%File% move G:\aaa\xxx* G:\bbb\xx1_%File% --------------- としてもフォルダは作成されておりましたが、xxxフォルダの中身が移動されておりませんでした。 どなたかお分かりの方がおりましたら、お願い致します。