MS-DOSバッチファイルコマンドのrenを使用して sample1__01.txt と sample2__02.txt の
__(アンダーバー2個)を_test_に置換して、sample1_test_01.txt とsample2_test_02.txt が
自動でできあがるようにしたいのですがうまくいきません。

見よう見まねで ren *__*.txt *_test_*.txt と書いて実行させてみたのですが
sample1__test_.txt と sample2__test_.txt となってしまいます。

どうすれば思いどうりの結果を得ることができるのでしょうか?
ご存知の方がおられましたらご回答をよろしくお願いします。

A 回答 (2件)

すいません。



誤:for %%A (*__*) do call :sub %%A
正:for %%A in (*__*) do call :sub %%A
    • good
    • 0
この回答へのお礼

早速やってみたところ問題を解決することができました。
ご回答していただきどうもありがとうございました。

お礼日時:2007/08/02 20:09

ren コマンドで * が使えるのはきわめて限定的なケースです。


ren A*.txt B*.txt のような。

バッチファイルを使って、1つずつリネームするしかないですね。
for %%A (*__*) do call :sub %%A
goto :eof
:sub
set A=%1
ren %A% %A:__=_test_%
goto :eof

この回答への補足

上記の記述をコピー&ペーストしてバッチファイルを実行してみたのですが
ファイル名を変更することができませんでした。
何かやり方に問題があったのでしょうか?

補足日時:2007/08/02 07:41
    • good
    • 0

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

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

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

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

Q映画版NANAをテレビで見て思ったこと・・

今、アニメを見てNANAにはまってるんですんですが、
映画版を昨日テレビで見て、レン役の松田さんの演技
あれでいいんでしょうか?
レン役が合う合わない以前に、無表情、感情が見えない演技、、
あなたはなぜ俳優になったの??と疑いたくなりました。
監督は駄目だしも何もなかったのかしら。。
色んな映画に出てるみたいですが、いつもあの演技
なんでしょうか?
本人は、無表情な中にも内に秘めるものを
みてなんて思ってるか知らないけど・・伝わりません。

後、章二もひどかったなぁー・・、あの人は只、素人が
演技しちゃいましたって感じだったけど。

ちなみに、レン役はビジュアルといい好きじゃないけど
妻不木君あたりが妥当なのかなと思いました。

久々に「演じる」というのもを考えさせたれた映画を見た気分です。

皆さんはどうでしたか?

Aベストアンサー

私も先日の放送を見ました。
蓮はだめでしたね・・・。とにかくビジュアルがだめでした(松田さんのファンの方すみません)。変わりに誰がよいかといわれると困るのですが、もっと細くてかっこいい方がよかったかなと。はまっているのは中島美嘉さんだけのような気もしました。
漫画を読んでいるからそのイメージが強く残ってしまっているんでしょうねぇ。だからちょっと残念に思います。
もう1つ、漫画を読んだことのない人が見て楽しめたのかなと思いました。話が飛びすぎているという感じがしたのですが・・・。

QMS-DOSのコマンドでファイルをクリアするコマンドありますか?

DOSに関してはシロート同然のわたしです。
お助け下さい!

あるテキストファイルをの中身だけを空にしたいのですが、
MS-DOSのコマンドで、ファイル名を指定して
ファイルの中身を全て消すコマンドってありますでしょうか?
ある様でしたら、実際のコーディング例も教えていただけませんか?
(「aaa.txt」と言うファイルをクリアするとしたら・・・?)


それと、もし、MS-DOSのコマンドの一覧が分かるホームページなどありましたら合わせて教えていただけませんでしょうか?

Aベストアンサー

これが正式な使い方かはわかりませんが(オプションの説明を見ていると違うような気が・・・)、/Iオプションをつけることで一応確認メッセージを消せるようです。
動作としては、コピー元のファイルが一つの時はコピー先に指定したものをファイルとして、コピー元のファイルが複数ある場合はコピー先をディレクトリとして扱うようになります。
ちなみに/Iの意味は、オプションの説明によると、
「受け側がなく、複数のファイルをコピーする場合、受け側をディレクトリとしてコピーします。」
だそうです。
英語サイトの説明には
「By default, xcopy prompts you to specify whether Destination is a file or a directory.」
とあるので、動作としてはこれであっているのかもしれません。

長くなりましたけど、
xcopy /I コピー元ファイル名 コピー先ファイル名
で確認メッセージなしで0バイトのファイルもコピーできるようになると思います。

参考URL:http://www.microsoft.com/technet/prodtechnol/winxppro/proddocs/xcopy.asp

これが正式な使い方かはわかりませんが(オプションの説明を見ていると違うような気が・・・)、/Iオプションをつけることで一応確認メッセージを消せるようです。
動作としては、コピー元のファイルが一つの時はコピー先に指定したものをファイルとして、コピー元のファイルが複数ある場合はコピー先をディレクトリとして扱うようになります。
ちなみに/Iの意味は、オプションの説明によると、
「受け側がなく、複数のファイルをコピーする場合、受け側をディレクトリとしてコピーします。」
だそうです。
英...続きを読む

Q映画NANAのこと

映画NANAのことで質問させてください。
他のサイトでレン役の人のお腹が出ていたと書かれているのを見かけました。
そんなに分かるくらい出ているのでしょうか?

Aベストアンサー

そんなポッコッリってわけではないんですが、
痩せてるなりにたるんだおなかって表現が正しいと思います。

ジーパンに上半身、ベットに腰掛けるシーンなので、
嫌でもおなかが目立つんですよ。

顔があれですから余計厳しく採点しちゃうんですよね。
げんなりしちゃうシーンではあります。

QMS-DOSのバッチによるファイルリネームの方法

いつもお世話になります。
MS-DOS(windows XP)で、あるディレクトリ内のファイルを一括リネームするようなバッチスクリプトを作成しようとしています。
ファイル名は、例えば「10P1125532_20080130135757_condA_para50.txt」というような感じで、後半の「_condA_para50.txt」は共通で、これが2万ファイルほどあります。
それで、後半の「_condA_para50」の部分を削除しようとして、まずはコマンドプロンプトでそのディレクトリに移動してから、
ren *_condA_para50.txt *.txt
とやったのですが、認識されていないのか、リネームされませんでした。(エラーも出ませんでした)
スクリプトに書く場合は、どのようにすればちゃんとリネームされるのでしょうか?
よろしくお願いします。

Aベストアンサー

for %%A in (*.txt) do call :sub %%A
goto :eof
:sub
set X=%1
set X=%X:_condA_para50=%
ren %1 %X%
goto :eof

Q映画「NANA」のキャスティング、私ならこうする!

映画「NANA」も大好評のようですね。
私もさっそく観てきました。

ナナ・ハチは漫画どおりで、かなり満足!
ただし男性陣があまりしっくり来ませんでした・・・。
(ヤス、タクミ、章司は合ってたけど
レンとシンがー!!)



そこで、いろんなところで話題になってますが
皆さんの「キャスティング、私ならこうする!」を
まとめて聞いてみたいな、と思いました。


ちなみに私なら


ナナ  →土屋アンナちゃんでも良かったかも
ハチ  →宮崎あおいちゃん、合ってた!

レイラ →MELODY.
タクミ →元ラルクのSAKURA
ナオキ →ラルクのTETSU
レン  →?速水もこみちとか?

ノブ  →小池徹平
ヤス  →?
シン  →?

章司  →?玉木宏?
幸子  →?大塚愛?

ハチの妹→若槻千夏、ガングロで(笑)


賛成!反対!などのご意見や、
新たなお知恵をお借りしたいです。どうぞよろしくお願いいたします。

Aベストアンサー

公開前にあったアンケートにも書いたのですが(まだ見に行ってませんが)

蓮は漫画を見たときから「松田悟志」さんがよく似ているーと思っていたので彼がよいです。

Qディレクトリおよびファイルを作成する方法について(MS-DOSバッチ、vbs等)

Windows Server 2003 についての質問です。
もしご存知でしたら、ヒントだけでもご教示願えますでしょうか。

目的
 ・あるツールの評価をするため、多数のディレクトリ
  とファイルを作成する必要があります。
  これを手動で実行することは時間的に無理があるため、
  MS-DOSによるバッチやvbs等スクリプトによる自動化を
  したいと思っております。

やりたいこと
 ・例えば、下記のような階層構造でフォルダおよびファイルを
  作成するバッチを作成したいです。

  c:\フォルダ1\フォルダ2\フォルダ3\フォルダ4\フォルダ5\フォルダ6
各階層のフォルダ配下にもサブフォルダとファイルを多数存在させます。
  ファイルサイズは固定です。
  フォルダ、ファイルの名前は単純なもので構いませんが、
  番号を振りたいです。

  方法としては、まずは元になるファイルを作成しておき、
  あとはforコマンドでディレクトリを作成してファイルを
  コピーしていけば良いと思っておりますが、実際に
  どのようにMS-DOSバッチ化(もしくはvbsスクリプト化)
  すれば良いか不明です。

お手数ですが、どうぞご教示のほど宜しくお願い致します。

Windows Server 2003 についての質問です。
もしご存知でしたら、ヒントだけでもご教示願えますでしょうか。

目的
 ・あるツールの評価をするため、多数のディレクトリ
  とファイルを作成する必要があります。
  これを手動で実行することは時間的に無理があるため、
  MS-DOSによるバッチやvbs等スクリプトによる自動化を
  したいと思っております。

やりたいこと
 ・例えば、下記のような階層構造でフォルダおよびファイルを
  作成するバッチを作成したいです。

  c:\フォル...続きを読む

Aベストアンサー

サンプルをVBScript で作ってみました。
適当に、修正してください。
ネズミ算的にフォルダとファイルが作成されるので注意して下さい。
(結構な時間と容量が必要です)
----------------------------------------------------------------
'フォルダを再帰的に作成し、ファイルのコピーを作る
Dim fso
Dim orgFileName, orgFile
Dim FolderN, FileN
Dim DefaultFolderName, DefaultFileName
Dim LevelMax

orgFileName="org.txt" 'コピー元ファイル名の設定
FolderN = 5 '1つのフォルダが保持するサブフォルダ数
FileN = 7 '1つのフォルダが保持するファイル数
DefaultFolderName = "folder" '既定のフォルダ名
DefaultFileName = "file" '既定のファイル名
LevelMax = 6 '作成するフォルダの深さ

Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set orgFile = fso.GetFile(orgFileName)

Call mkdirR(0, ".")

WScript.Echo "終了しました"

Sub mkdirR (level, folder)
Dim subFolderName
Dim i, j
subFolderName = folder & "\" & DefaultFolderName & level
If level = 0 Then
fso.CreateFolder(subFolderName) 'ルートフォルダは1つだけ作る
Call mkdirR(level + 1, subFolderName)
ElseIf level > LevelMax Then '深さがMax を越えたらヤメ
Exit Sub
Else
For i=1 to FolderN
fso.CreateFolder(subFolderName & "_" & i)
For j=1 to FileN
orgFile.Copy(subFolderName & "_" & i & "\" & DefaultFileName & j & ".dat")
Next
Call mkdirR(level + 1, subFolderName & "_" & i)
Next
End If

End Sub

サンプルをVBScript で作ってみました。
適当に、修正してください。
ネズミ算的にフォルダとファイルが作成されるので注意して下さい。
(結構な時間と容量が必要です)
----------------------------------------------------------------
'フォルダを再帰的に作成し、ファイルのコピーを作る
Dim fso
Dim orgFileName, orgFile
Dim FolderN, FileN
Dim DefaultFolderName, DefaultFileName
Dim LevelMax

orgFileName="org.txt" 'コピー元ファイル名の設定
FolderN = 5 '1つのフォルダが保持する...続きを読む

Q仕事で重要な「ほう・れん・そう」って?ボケ回答で!

仕事で重要って言われる「ほう・れん・そう」
ほう・・報告、れん・・連絡
では、「そう」は何でしたっけ??ボケ回答でお願いします。

Aベストアンサー

こんばんは(^O^)/

ほう・・・ほぉ~~!
れん・・・れんちゃん・・(・_・;)?
そう・・・そう・・じゅく・・・・・・・・(恥)

あら?
そう・・
だけ?
でした?

こりゃ、また、すんつれぇ~すますた・・・(ハズカシ・・)(>_<)

QMS‐DOSバッチ作成について 多量ファイルの移動 "IF"と "FOR"の使い方?

初めまして。よろしくお願いします。
コマンド初心者 & 初書き込みタケブーです。

早速ですが、バッチ作成についての質問です。

"D:\temp\"に下記のようなファイルが毎日100件程度出力されます。

「AAA_20090430121212.log」
「BBB_20090430121212.log」
「CCC_20090430121212.log」
「AAA_20090430131212.log」
「BBB_20090430131212.log」
「CCC_20090430131212.log」


「○○○_YYYYMMDDHHMISS.log」


「AAA_20090701122212.log」
「BBB_20090701122212.log」
「CCC_20090701122212.log」

このファイルを対象月の"D:\temp\YYYYMM"フォルダに移動し、
さらに対象日の"D:\temp\YYYYMM\YYYYMMDD"フォルダに移動したいと
考えております。

未来の月日のフォルダは作成したくありません。
そのため、ファイル名を参照し、
フォルダを作成するようにしたいのです。
また、当日分のファイルは移動対象とはしたくありません。

if文、for文を使用して何とかしようとしたのですが
うまくいきません。

ご指導のほどよろしくお願いします。

初めまして。よろしくお願いします。
コマンド初心者 & 初書き込みタケブーです。

早速ですが、バッチ作成についての質問です。

"D:\temp\"に下記のようなファイルが毎日100件程度出力されます。

「AAA_20090430121212.log」
「BBB_20090430121212.log」
「CCC_20090430121212.log」
「AAA_20090430131212.log」
「BBB_20090430131212.log」
「CCC_20090430131212.log」


「○○○_YYYYMMDDHHMISS.log」


「AAA_20090701122212.log」
「BB...続きを読む

Aベストアンサー

何がどううまく行かないのかを書いてくれないと。

想像するに、Unix/Linuxのシェルスクリプトのように1ファイルでどうにかする事にこだわっているのではないでしょうか?
(相当習熟している人なら書けるかも、ですが)

1ファイルにこだわらないのであれば、mainとsubでバッチを2本作ってはどうでしょう?

◆mkdir_move_sub.bat
引数のファイル名を元にフォルダ作成&移動

◆mkdir_move_main.bat
for文でdirの内容をサブに渡してやる

mkdir_move_sub.batの内容(ここから)
REM --------------------------------
@echo off

d:
cd d:\temp

REM 引数1の内容をセット
set filename=%~1

REM 引数の内容から年月を取得
set YYYYMM=%filename:~4,6%

REM 引数の内容から年月日を取得
set YYYYMMDD=%filename:~4,8%

REM 今日の日付を取得(書式は環境依存なので注意!)
set TODAY=%DATE:/=%

REM 日付が今日だったらフォルダ作成せず終了
if "%YYYYMMDD%" == "%TODAY%" goto endbatch

REM フォルダが存在しない場合は作成
if not exist "%YYYYMM%" mkdir "%YYYYMM%"
if not exist "%YYYYMM%\%YYYYMMDD%" mkdir "%YYYYMM%\%YYYYMMDD%"

REM ファイルを移動
move "%filename%" "%YYYYMM%\%YYYYMMDD%"

:endbatch
REM --------------------------------
mkdir_move_sub.batの内容(ここまで)

mkdir_move_main.batの内容(ここから)
REM --------------------------------
@echo off

d:
cd d:\temp

REM 今日の日付を除いたファイルから年月フォルダ作成し移動
FOR /F "usebackq delims==" %%i IN (`dir /b *.log`) DO @call mkdir_move_sub.bat %%i

REM --------------------------------
mkdir_move_main.batの内容(ここまで)

何がどううまく行かないのかを書いてくれないと。

想像するに、Unix/Linuxのシェルスクリプトのように1ファイルでどうにかする事にこだわっているのではないでしょうか?
(相当習熟している人なら書けるかも、ですが)

1ファイルにこだわらないのであれば、mainとsubでバッチを2本作ってはどうでしょう?

◆mkdir_move_sub.bat
引数のファイル名を元にフォルダ作成&移動

◆mkdir_move_main.bat
for文でdirの内容をサブに渡してやる

mkdir_move_sub.batの内容(ここから)
REM ----------------...続きを読む

Q中国ぎんれんってクレジットブランドなんですか?

中国ぎんれんってクレジットブランドなんですか?
ぎんれんカードってデビットカードじゃないですか

Aベストアンサー

デビットカードですね。決済すると即時口座から引かれます。ですから、銀行残高がないと使えなくなります。
使用方法としてはクレジットカードに似ていますがクレジットではないと言うことになりますね。

QMS-DOSで日本語のファイル名を指定するには?

友人の会社のパソコンが壊れてしまいました。
(恐らくハードの寿命だということなのですが…)

修理に訪れた業者さんの話では、
MS-DOSを使ってフロッピーに
今まで作成したファイルを移すことが可能らしいのですが、
どのようにすれば良いのか分かりません。

何か、指令のコマンドを入力すればよいのでしょうか?

また、ファイル名を全角日本語でつけていたので、
MS-DOS画面では入力することが出来ないそうです。

ファイル名を変換するソフトなど、何かよい方法があるのでしょうか?

MS-DOSなど使ったことがないので、
素人にもわかるように、平易な言葉で
教えて頂けないでしょうか?

Aベストアンサー

使うMS-DOSのコマンドは
dir : ディレクトリー(フォルダー)、ファイルのリスト
cd : ディレクトリ(フォルダー)の移動
copy : ファイルのコピー

MS-DOSの状態ではショートファイル名で表示されますのでその点を注意してください。

MS-DOSのコマンドの多少の勉強は必要ですが、手順としてはこんな感じではないでしょうか。

MS-DOSプロンプトの状態で、というかMS-DOSでしか起動できない状態かとは思いますが。
たとえば、c:\My Documents のなかにファイルがあるとすると、
 「My Documents」はショートファイル名での表示は 「MYDOCU~1」となりますので、

c:\>cd c:\MYDOC~1[Enter]
~~~~~~~~~~~~~
として、My Documentsフォルダーに移動します。

c:\My Documents>dir /w[Enter]
~~~~~~
として、フォルダーの中身を一応確認します。

c:\My Documents>copy *.* a:[Enter]
         ~~~~~~~~~~~~
として、My Documents にあるファイルを全部フロッピー(A Drive)にコピーします。
  もし、サブフォルダーが有るときには、cd コマンドを使ってサブフォルダーに移動してから、copy コマンドでデータをフロッピーにコピーします。
  親ディレクトリーに戻るときには、

c:\My Documents>cd ..[Enter]
         ~~~~~
のように、[..] ドット2つで今いるフォルダーの1つ上のフォルダーに移動します。

だいたいこんな感じですが、細かいところはMS-DOSコマンドの本などもありますので、そちらで勉強してみて下さい。

使うMS-DOSのコマンドは
dir : ディレクトリー(フォルダー)、ファイルのリスト
cd : ディレクトリ(フォルダー)の移動
copy : ファイルのコピー

MS-DOSの状態ではショートファイル名で表示されますのでその点を注意してください。

MS-DOSのコマンドの多少の勉強は必要ですが、手順としてはこんな感じではないでしょうか。

MS-DOSプロンプトの状態で、というかMS-DOSでしか起動できない状態かとは思いますが。
たとえば、c:\My Documents のなかにファイルがあるとすると、
 「My Documents」は...続きを読む


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

人気Q&Aランキング

おすすめ情報