痔になりやすい生活習慣とは?

batファイルで「フォルダを作成し、作成したフォルダに入る」という処理を
自動的にしたいです。
どのようなbatファイルを作ったらよいでしょうか?
まったくの初心者なのでよくわかりません。
フォルダ名はDOS上できいてもらってもいいし、その都度batファイルに書き込んでもいいですが、
楽にできるほうがいいです。

A 回答 (4件)

サンプルを作ってみました。

これでご希望の動作でしょうか?
フォルダ名は起動時に入力してもらう形にしました。

echo off

set name=
:loop
set /p name=フォルダ名を入力[Enterのみは中断] :
if not defined name goto :EOF

for %%f in (D:\temp D:\test) do (
md %%f\%name%
start cmd /k pushd "%%f\%name%"
)
    • good
    • 4
この回答へのお礼

まさに求めていたものです。
ありがとうございました!
遅くなってすみません。

お礼日時:2011/12/02 16:32

たとえば、C:\にTEST.BATを用意し、Cのルート直下に20111104フォルダを作成するとして。



DOS窓開いて、
copy con C:\Test.bat [Enter]
md %1         [Enter]
cd %1         [Enter]
^Z [Ctrl+z][Enter]
でバッチ作成。

そのまま C:\Test.bat C:\20111104 [Enter]で
Cドライブ直下に20111104フォルダを作成して、カレントディレクトリがC:\20111104になります。
(プロンプトのパス表示がC:\20111104\>になります)

この回答への補足

みなさま、回答ありがとうございます!
自分の質問に補足するやり方がわからないのでこちらに・・・
(bin-chanさんすみません)

例えば、D:\tempとD:\testの下に20111107というフォルダを作成し、
DOS窓を二つ立ち上げてD:\temp\20111107とD:\test\20111107がカレントディレクトリに
なっている状態にしたいのです。

20111107というフォルダ名は毎日のように変わりますので、フォルダ名は簡単に変えられるように
なっているとありがたいです。

補足日時:2011/11/07 12:24
    • good
    • 0

「フォルダを作成する」はいいんだけど, 「作成したフォルダに入る」ってどんな動作を期待しているんでしょうか?

    • good
    • 0

MKDIRコマンド(MDコマンド)


CHDIRコマンド(CDコマンド)
を使いましょう。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q複数フォルダをまとめて移動するバッチ

複数フォルダを、フォルダ内のファイルごと、移動させたいです。

イメージで言うと、下の
C001やC002の階層にあるフォルダ群を、A001の下に持って行きたいんです。
(B001のフォルダがジャマになっている)
[image]
root:.
└─A001
   └─B001
      ├─C001
      │  ├─File01
      │  └─File02
      └─C002
          ├─File01
          └─File02
[/image]

moveコマンドで出来るのかなぁと思っていたのですが、
複数ファイルは出来るんだけど、複数フォルダは出来ませんでした。
ファイルを一括して特定のフォルダにまとめるのではなく、
フォルダ構造は残して複数フォルダを一括移動させたい(中間フォルダ階層を消したい)です。

実際には上のイメージとは異なり、数百個のフォルダがあり、ファイル数も各フォルダに数万個入っているので、エクスプローラから切り取り&貼り付けを行うと、それだけで10分近くかかってしまい困っています。
可能なら、バッチで夜中に自動実行させて済ませたいです。

よろしくお願いします。

複数フォルダを、フォルダ内のファイルごと、移動させたいです。

イメージで言うと、下の
C001やC002の階層にあるフォルダ群を、A001の下に持って行きたいんです。
(B001のフォルダがジャマになっている)
[image]
root:.
└─A001
   └─B001
      ├─C001
      │  ├─File01
      │  └─File02
      └─C002
          ├─File01
          └─File02
[/image]

moveコマンドで出来るのかなぁと思っていたのですが、
複数ファイルは出来るん...続きを読む

Aベストアンサー

とりあえず、こんな感じでそのディレクトリにある全てのフォルダを一つ上のディレクトリに移動できると思いますが。

-------
@echo off
for /d %%f in (*) do move %%f ..
-------

Qコマンドプロンプトでフォルダを移動させるには?

C:\Data\Mine\Pictureというフォルダ構造の時、
Pictureフォルダを
C:\Dataの直下に移動させたいのです。

moveでフォルダ移動させようとすると「アクセスが拒否されました」となってしまいます。
moveではフォルダの移動は出来ないのでしょうか?

(ダメならcopyとrmdirで対応します)

Aベストアンサー

moveでできますよ。
ご希望のケースであれば、move c:\data\mine\picture c:\dataとやればいいと思います。
そのフォルダの中に入って作業をしようとしているとか、フォルダの中にあるファイルをロックしているアプリケーションがあるとかではないですか?

Q同名フォルダを作成し、そのフォルダに移動するバッチ

自宅で

「Files 2 Folder」
http://www.gigafree.net/utility/move/files2folder.html

というフリーソフトを使って、
作成したファイルと同名のフォルダを作成し、
その作成されたフォルダ内にファイル移動させてファイルの管理をしております。

会社でもこのソフトを使えればいいのですが、
業務に必要不可欠でないフリーソフトをインストールすることを許されていないので、
一つ一つ手作業でフォルダを作成し、そのフォルダにファイルを放り込んでいます。

しかし、
バッチというものを作れば、
windowsの基本機能で、
あるアイコンにファイルをまとめてドラッグアンドドロップしたら、
各ファイルと同名のフォルダをそれぞれ作成し、その作成されたフォルダ内に移動させるようには出来るのでしょうか?

もし可能でしたらやり方を教えてください。

尚、使用しているPCのOSはWindows 7 Professionalです。

Aベストアンサー

No1です。

:LOOP
if "%~1"=="" goto :EOF
md "%~dp1%~n1"
move "%~1" "%~dp1%~n1"
shift
goto :LOOP

QXCOPYで指定したフォルダとファイルをコピーしたい

C:\AAAフォルダとC:\AAA以下のファイルをコピーしたくて、
XCOPY C:\AAA D:\BBB /E
とすると、コピー先のD:\BBBにはAAAフォルダにあるファイルはコピーされるのですが、AAAフォルダそのものはコピーされません。
XCOPY C:\ D:\BBB /E
とすればコピーできるのですが、そうするとC:\のほかのフォルダもコピーされてしまいます。
EXCLUDEオプションを使うには指定するファイルが多いため、あまり使いたくありません。(コピーする前にMDでコピー先にAAAフォルダを作成するのもなるべく避けたい)
知っている方がいらしたら教えて下さい。

Aベストアンサー

xcopy /e C:\AAA D:\BBB\AAA
複数ファイルのコピーでコピー先が存在しないとき、ファイル名と見なすかディレクトリ名と見なすか聞いてきます。

応答を聞かれるのが嫌なら
echo d | xcopy /e C:\AAA D:\BBB\AAA
でいいはず。

Q特定のフォルダ内のある種類のファイルをすべてコピーし格納する方法

WINDOWSマシン使用。
あるフォルダ(AAA)の中に、複数のフォルダやファイルを含み、またそのフォルダは、
は、下位のフォルダやファイルを含むという関係が続きます。階層は4くらい。
この中の各所にあるフォルダにはwordのファイルやその他のファイルを含んで
います。
このwordのファイルだけをすべて選択しコピーして、別のフォルダ(BETU)へ
入れたい。
簡単に行なう方法、あるいはツールなどあれば紹介をお願いします。

Aベストアンサー

はじめまして。

コマンドプロンプトで
for /f "tokens=*" %i in ('dir /b /s AAA\*.doc') do copy "%i" "BETU"
を実行すれば4階層以上深くても可能です。

※"%i" "BETU"と"でくくるのは、ディレクトリ名に空白がある場合エラーとなるのを防ぐためです。

AAAもBETUもフルパスで記述すればコマンド実行ディレクトリは何処でも構いません。

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

Qbatファイルの結果をテキストに吐き出すには?

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.txt
--------------------------------------
C:\>net user "test user1" ps123456 /domain
--------------------------------------

DOS画面(吐き出したいもの)
--------------------------------------
C:\>net user "test user1" ps123456 /domain
コマンドは正常に終了しました。

C:\>net user "test user2" ps456789 /domain
コマンドは正常に終了しました。

C:\>henkou.bat 1>c:\henkou結果.txt
--------------------------------------

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.t...続きを読む

Aベストアンサー

henkou.bat
--------------------------------------
@ECHO OFF

IF NOT EXIST %temp%\Redirect.txt GOTO REDIREXEC

@ECHO ON

net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain

@ECHO OFF

GOTO END

:REDIREXEC

ECHO REDIRECT > %temp%\Redirect.txt

CALL TEST.BAT > c:\henkou結果.txt

DEL %temp%\Redirect.txt

PAUSE

:END
--------------------------------------

こんな感じでどうでしょうか。

Qバッチファイルで2つ以上の変数を連結し、1つの変数にしたい。

Windows2000でバッチファイルを作っています。
バッチファイルが受け取る2つのパラメータを %1 %2とすると、
それを連結して、新たな変数 A を作りたいのですが、どのようにすれば良いのでしょうか。

Aベストアンサー

SETで変数にパラメータをセットすればOKだと思います。

例)
SET A=%1%2
echo %A%

Qバッチファイルで昨日の日付を取得

すみません、どなたか教えて下さい。

バッチファイルの記述で、昨日の日付を取得する方法を教えて下さい。
今日の日付は下記のように取得しています。

rem 日時変数の取得
for /f "tokens=1-3 delims=/" %%a in ('echo %date:~-10%') do (set YYYYMMDD=%%a%%b%%c
)

Aベストアンサー

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if %mm%==05 (set mm=04&& set dd=30)
if %mm%==06 (set mm=05&& set dd=31)
if %mm%==07 (set mm=06&& set dd=30)
if %mm%==08 (set mm=07&& set dd=31)
if %mm%==09 (set mm=08&& set dd=31)
if %mm%==10 (set mm=09&& set dd=30)
if %mm%==11 (set mm=10&& set dd=31)
if %mm%==12 (set mm=11&& set dd=30)
)
echo 昨日は、%yy%年%mm%月%dd%日です。

echo.
pause
:: ----- prevdate.bat おわり -----

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング