669) 検索結果をRenameのファイル名にしたい ししる 2003/10/08(水) 16:25 |
|
|
|
先程、同じような質問をさせて頂いたので大変恐縮なのですが・・・。 あるDatファイル「test.dat」の「n」バイト目から「n+x」バイト目の文字を抽出し、 さらにその抽出した文字で先程のDatファイル「test.dat」をRenameしたいのですが、できるのでしょうか? ※「test.dat」⇒「抽出した文字.dat」 ちなみに先程教えて頂いたサンプルをつかって単純に、 set words=%kekka:~0,10% ren c:\FTP\Send\ファクタリングデータ\before.txt %words%.txt とやってみたらエラーとなってしまいました。 ren c:\FTP\Send\ファクタリングデータ\before.txt %username%.txt は出来たので、出来るのかと思ったのですが・・・。 宜しくお願いします。 |
|
670) Re:検索結果をRenameのファイル名にしたい じゃく 2003/10/08(水) 16:43 |
|
|
|
こんにちは >ちなみに先程教えて頂いたサンプルをつかって単純に、 > >set words=%kekka:~0,10% >ren c:\FTP\Send\ファクタリングデータ\before.txt %words%.txt > >とやってみたらエラーとなってしまいました。 何というエラーメッセージがでたのでしょうか? >ren c:\FTP\Send\ファクタリングデータ\before.txt %username%.txt > >は出来たので、出来るのかと思ったのですが・・・。 echo %words% を挿入してみて、抽出した単語がどのようなものか示して いただけますか?ファイル名に使用できない文字が入っている 可能性もあります。(コロンとか) |
|
671) Re2:検索結果をRenameのファイル名にしたい ししる 2003/10/08(水) 16:54 |
|
|
|
こんにちは、じゃくさん >>ちなみに先程教えて頂いたサンプルをつかって単純に、 >> >>set words=%kekka:~0,10% >>ren c:\FTP\Send\ファクタリングデータ\before.txt %words%.txt >> >>とやってみたらエラーとなってしまいました。 > >何というエラーメッセージがでたのでしょうか? 「コマンドの構文が誤っています」と表示されました。 >>ren c:\FTP\Send\ファクタリングデータ\before.txt %username%.txt >> >>は出来たので、出来るのかと思ったのですが・・・。 > >echo %words% >を挿入してみて、抽出した単語がどのようなものか示して >いただけますか?ファイル名に使用できない文字が入っている >可能性もあります。(コロンとか) 検索先のファイルは私が作ったので 1abc 2def 3ghi 4jkl ・・・ と入っています。 検索したのは「1」なので、 「abc」と表示されました。 以上です。 宜しくお願いします。 |
|
674) Re3:検索結果をRenameのファイル名にしたい じゃく 2003/10/08(水) 18:20 |
|
|
|
>「コマンドの構文が誤っています」と表示されました。 空白が入っていませんか? echo ===%words%=== を挿入してみて、抽出した単語に空白が含まれていないか 確認していただけますか? ren test.txt abc .txt で実験したら同様のエラーが表示されました。 もし、空白を含めたファイル名にしたい場合は、 ren c:\FTP\Send\ファクタリングデータ\before.txt %words%.txt を ren c:\FTP\Send\ファクタリングデータ\before.txt "%words%.txt" とダブルクォーテーションでくくってみてください。 |
|
675) Re4:検索結果をRenameのファイル名にしたい ししる 2003/10/08(水) 18:31 |
|
|
|
ししるです。 >>「コマンドの構文が誤っています」と表示されました。 > >空白が入っていませんか? > >echo ===%words%=== >を挿入してみて、抽出した単語に空白が含まれていないか >確認していただけますか? >ren test.txt abc .txt >で実験したら同様のエラーが表示されました。 >もし、空白を含めたファイル名にしたい場合は、 >ren c:\FTP\Send\ファクタリングデータ\before.txt %words%.txt > >を >ren c:\FTP\Send\ファクタリングデータ\before.txt "%words%.txt" >とダブルクォーテーションでくくってみてください。 おっしゃるとおりです。 ===abc === と表示されました。 改行コードが入っていました。 すみませんでした。 |
|
676) Re5:検索結果をRenameのファイル名にしたい じゃく 2003/10/08(水) 18:47 |
|
|
|
こんばんは。 >===abc === >と表示されました。 >改行コードが入っていました。 >すみませんでした。 原因が分かって良かったですね。 本当に実行したいファイルではこんな事はないのだと思いますが、 また解らないことがあれば質問してください。 ここには詳しい人がたくさんいますので。 |
|
677) Re6:検索結果をRenameのファイル名にしたい ししる 2003/10/08(水) 19:50 |
|
|
|
ししるです。 >こんばんは。 > >>===abc === >>と表示されました。 >>改行コードが入っていました。 >>すみませんでした。 > >原因が分かって良かったですね。 >本当に実行したいファイルではこんな事はないのだと思いますが、 >また解らないことがあれば質問してください。 >ここには詳しい人がたくさんいますので。 > ありがとうございます。 すみません、検索の方が・・・ (スペース区切り無しの)固定長データで、400バイト目から15バイト分を抽出したいのですが、これって出来るのでしょうか? sabstrみたいなコマンドは無いみたいだし・・・。 |
|
678) Re7:検索結果をRenameのファイル名にしたい じゃく 2003/10/08(水) 19:58 |
|
|
|
>(スペース区切り無しの)固定長データで、400バイト目から15バイト分を抽出したいのですが、これって出来るのでしょうか? > >sabstrみたいなコマンドは無いみたいだし・・・。 固定長データは全体で(または1レコード)何バイトありますか? バイナリデータですか、半角英数字ですか? 2バイトコード(漢字)は入っていますか? 断片的ではなく全体像を記述していただくと、わかりやすいのですが。 環境変数に格納した文字の400文字目から15文字を取り出すなら set kekka=%kekka:400,15% なのですが、漢字も半角英数字も1文字で数えるので、 400バイトと一致しない可能性があります。 あと、固定長データの長さによっては環境変数に収まりきらない 可能性があります。バイナリデータだとバッチではお手上げかも。 |
|
679) Re8:検索結果をRenameのファイル名にしたい ししる 2003/10/08(水) 21:38 |
|
|
|
こんばんは ししるです。 >>(スペース区切り無しの)固定長データで、400バイト目から15バイト分を抽出したいのですが、これって出来るのでしょうか? >> >>sabstrみたいなコマンドは無いみたいだし・・・。 > >固定長データは全体で(または1レコード)何バイトありますか? 512バイトあります。 >バイナリデータですか、半角英数字ですか? 半角英数字です。 >2バイトコード(漢字)は入っていますか? 入っていません。 >断片的ではなく全体像を記述していただくと、わかりやすいのですが。 すみません。 気を付けます。 >環境変数に格納した文字の400文字目から15文字を取り出すなら >set kekka=%kekka:400,15% >なのですが、漢字も半角英数字も1文字で数えるので、 >400バイトと一致しない可能性があります。 >あと、固定長データの長さによっては環境変数に収まりきらない >可能性があります。バイナリデータだとバッチではお手上げかも。 > 半角英数字で、漢字コードも入っていないのですが、なぜか6バイトずれて表示されてしまいました。 よくよく調べてみたところ、数字の「1」が読まれないようです。 データ上(0~10バイト)に aabbccddeeff とある場合、 set words=%kekka:~0,10% echo ===%words%=== とすると ===aabbccddee=== と、表示されますが、 データ上(0~10バイト)に aabbccdd11ff とある場合、 set words=%kekka:~0,10% echo ===%words%=== とすると ===aabbccddff=== と表示されてしまいます。 (ちなみに「1」を「2」にしたら 「===aabbccdd22===」と表示されました。) これは何故なのでしょうか? もし、何かお気づきの点がありましたらコメントお願いします。 |
|
681) Re9:検索結果をRenameのファイル名にしたい じゃく 2003/10/09(木) 06:20 |
|
|
|
>半角英数字で、漢字コードも入っていないのですが、なぜか6バイトずれて表示されてしまいました。 >よくよく調べてみたところ、数字の「1」が読まれないようです。 >これは何故なのでしょうか? >もし、何かお気づきの点がありましたらコメントお願いします。 前回のバッチを元に検証されていますよね。 今回もご自身で作られた test.txt でテストされてますか? テストファイルは、前回同様、 1aabbccdd11ff 2gghhiijj22kk ... ... という感じではないでしょうか。 前回のバッチを作る際に、条件として 「検索するキーワードはユニーク」という条件があったので、 キーワードとなる文字をすべて消してから、10文字分を取り出す よう作ってあります。 検索キーワードが1で検証されていませんか? (的はずれでしたらごめんなさい) もし、検索キーワードとその後の文字列に同じ文字列が出てくるような 場合は、最初のバッチを作り替える必要がありますので、ご自身が希望 される動作の条件を詳しく書いてください。 |
|
683) Re10:検索結果をRenameのファイル名にしたい ししる 2003/10/09(木) 13:13 |
|
|
|
ししるです。 >>半角英数字で、漢字コードも入っていないのですが、なぜか6バイトずれて表示されてしまいました。 >>よくよく調べてみたところ、数字の「1」が読まれないようです。 > >>これは何故なのでしょうか? >>もし、何かお気づきの点がありましたらコメントお願いします。 > >前回のバッチを元に検証されていますよね。 >今回もご自身で作られた test.txt でテストされてますか? >テストファイルは、前回同様、 > >1aabbccdd11ff >2gghhiijj22kk >... >... > > >という感じではないでしょうか。 >前回のバッチを作る際に、条件として >「検索するキーワードはユニーク」という条件があったので、 >キーワードとなる文字をすべて消してから、10文字分を取り出す >よう作ってあります。 >検索キーワードが1で検証されていませんか? >(的はずれでしたらごめんなさい) はい、おっしゃるとおりです。 >もし、検索キーワードとその後の文字列に同じ文字列が出てくるような >場合は、最初のバッチを作り替える必要がありますので、ご自身が希望 >される動作の条件を詳しく書いてください。 > 希望の動作としては 「固定長のデータファイル(test.dat)の400バイト目から10バイト分のデータ(400~410バイト分のデータ)を抽出したい」 ということになります。 |
|
690) Re11:検索結果をRenameのファイル名にしたい じゃく 2003/10/10(金) 16:13 |
|
|
|
>希望の動作としては > >「固定長のデータファイル(test.dat)の400バイト目から10バイト分のデータ(400~410バイト分のデータ)を抽出したい」 > >ということになります。 まだよくわかりません。 test.dat は半角英数字が何バイトぐらい続くのでしょうか? 途中に改行などいっさい無いのかな。 400バイト目から10バイトなら、先頭から400-409バイトですよね。 もう、キーワードとか関係なくなったのでしょうか? |
|
692) Re12:検索結果をRenameのファイル名にしたい ししる 2003/10/10(金) 18:39 |
|
|
|
ししるです。 >>希望の動作としては >> >>「固定長のデータファイル(test.dat)の400バイト目から10バイト分のデータ(400~410バイト分のデータ)を抽出したい」 >> >>ということになります。 > >まだよくわかりません。 >test.dat は半角英数字が何バイトぐらい続くのでしょうか? >途中に改行などいっさい無いのかな。 改行無しの512バイトです。 >400バイト目から10バイトなら、先頭から400-409バイトですよね。 すみません。その通りです。 >もう、キーワードとか関係なくなったのでしょうか? はい、せっかく作っていただいたのに申し訳ありません。 「512バイトのデータの400バイト目から10バイトを抽出したい」 ということです。 宜しくお願いします。 |
|
698) Re13:検索結果をRenameのファイル名にしたい じゃく 2003/10/14(火) 08:54 |
|
|
|
>>>希望の動作としては >>> >>>「固定長のデータファイル(test.dat)の400バイト目から10バイト分のデータ(400~410バイト分のデータ)を抽出したい」 >>> >>>ということになります。 >> >>まだよくわかりません。 >>test.dat は半角英数字が何バイトぐらい続くのでしょうか? >>途中に改行などいっさい無いのかな。 > >改行無しの512バイトです。 > >>400バイト目から10バイトなら、先頭から400-409バイトですよね。 > >すみません。その通りです。 > >>もう、キーワードとか関係なくなったのでしょうか? > >はい、せっかく作っていただいたのに申し訳ありません。 > >「512バイトのデータの400バイト目から10バイトを抽出したい」 >ということです。 > >宜しくお願いします。 > 提示いただいた条件で動作するバッチを作りました。 (というよりほとんど前のバッチと変わってません) ただ、Windows2000で環境変数に512バイトもセットできるか わからなかったので検証してから掲示しようと思ってました。 やっと検証できましたので掲示します。 @echo off for /F "tokens=* delims=" %%l in (test.dat) do set kekka=%%l set words=%kekka:~399,10% echo %words% set kekka= |
|
699) Re14:検索結果をRenameのファイル名にしたい ししる 2003/10/14(火) 13:36 |
|
|
|
ししるです。 じゃくさん、色々とありがとうございました。 PS:もうちょっと修行して出直します。 >>>>希望の動作としては >>>> >>>>「固定長のデータファイル(test.dat)の400バイト目から10バイト分のデータ(400~410バイト分のデータ)を抽出したい」 >>>> >>>>ということになります。 >>> >>>まだよくわかりません。 >>>test.dat は半角英数字が何バイトぐらい続くのでしょうか? >>>途中に改行などいっさい無いのかな。 >> >>改行無しの512バイトです。 >> >>>400バイト目から10バイトなら、先頭から400-409バイトですよね。 >> >>すみません。その通りです。 >> >>>もう、キーワードとか関係なくなったのでしょうか? >> >>はい、せっかく作っていただいたのに申し訳ありません。 >> >>「512バイトのデータの400バイト目から10バイトを抽出したい」 >>ということです。 >> >>宜しくお願いします。 >> > >提示いただいた条件で動作するバッチを作りました。 >(というよりほとんど前のバッチと変わってません) >ただ、Windows2000で環境変数に512バイトもセットできるか >わからなかったので検証してから掲示しようと思ってました。 >やっと検証できましたので掲示します。 > >@echo off >for /F "tokens=* delims=" %%l in (test.dat) do set kekka=%%l >set words=%kekka:~399,10% >echo %words% >set kekka= > |