【.cmd】 バッチファイルスクリプト %4 【.bat】 at TECH
[2ch|▼Menu]
779:デフォルトの名無しさん
09/04/19 10:50:31
titleコマンドはいつからタスクトレイに表示するコマンドになったんだ?


780:デフォルトの名無しさん
09/04/19 10:53:24
無理
の一言で済ませて欲しいならそっちでも構わないよ

781:デフォルトの名無しさん
09/04/19 16:24:46
なるほど

782:デフォルトの名無しさん
09/04/19 23:47:43
start /min cmd /k "tasklist/nh|find /c /v ""|(set /p x=& call title %x%)"

783:デフォルトの名無しさん
09/04/20 00:34:17
なるほど

784:デフォルトの名無しさん
09/04/20 21:47:03
ご助言お願いします。
特定のディレクトリに、longfilename日付.txtというファイルが
いくつかあります。※状況によってファイル数が変わる

(例)
longfilename20090417.txt
longfilename20090419.txt
longfilename20090420.txt

これらのファイルの中身の"aaa"という文字列を"bbb"に変換したいのですが
どのようにすれば良いでしょうか

以下のように書きましたが、うまくいきませんでした。

dir *.txt > tmp.txt
type tmp.txt | find "txt" > tmp1.txt
for /f "tokens=4" %%a in (tmp1.txt) do echo %%a >> tmp2.txt
for /f %%a in (tmp2.txt) do sed -e 's/aaa/bbb/g' %%a > %%a

問題点としては、
・Sed LOGOS版2.42が、ロングファイルネームのファイルを使えないっぽい
・4行目のfor文の記述では繰り返し処理が無理?

使用しているsedは、Sed LOGOS版2.42というものです。
よろしくお願いします。


785:デフォルトの名無しさん
09/04/20 22:02:47
>>764
自意識過剰すぎる
本当は今も学生なんじゃないか?

786:デフォルトの名無しさん
09/04/20 22:39:19
>>784
Sed LOGOS版2.42がどういう仕様かは知らないけど、
いくつかDOS/Win用sed使った経験からいうと、
sedの引数は '〜' じゃなく "〜" で括らないと
意図どおりにならない気がする。

それから、

> for /f %%a in (tmp2.txt) do sed -e 's/aaa/bbb/g' %%a > %%a

入力ファイルと出力ファイルが同じだと
うまくリダイレクトできないんじゃなかったっけ?

あと、実際のファイル名が分からないから念のため触れておくと、

> for /f "tokens=4" %%a in (tmp1.txt) do echo %%a >> tmp2.txt

もしもファイル名に空白を含む可能性があるなら、
これだと空白でファイル名が途切れる。

for /f %%a in ('dir /b *.txt') do type "%%~a"

みたいにすると、きれいにファイル名だけ取り出せるはず。

787:デフォルトの名無しさん
09/04/20 22:44:14
Sed LOGOS版2.42が、ロングファイルネームのファイルを使えない

788:デフォルトの名無しさん
09/04/20 22:45:05
for文の記述では繰り返し処理が無理

789:デフォルトの名無しさん
09/04/20 22:46:42
知ったかぶりは無視してください

790:デフォルトの名無しさん
09/04/20 22:49:31
やっぱりロングファイルネームのファイルを使えないですか

791:デフォルトの名無しさん
09/04/20 23:01:38
やりかたがあほなんじゃないか?

792:デフォルトの名無しさん
09/04/20 23:08:25
間抜けなコードだねw

793:デフォルトの名無しさん
09/04/20 23:21:25
ベクターにSed LOGOS版2.42があったので試してみた。

>>786 で挙げた点のうち、

> sedの引数は '〜' じゃなく "〜" で括らないと
> 意図どおりにならない気がする。

これは '〜' でも大丈夫だった。

それから、DOS用なので>>787のいうようにロングファイルネームは使えなかった。

でもショートファイルネームにすればいいだけの話なら、

for /f %%a in ('dir /b *.txt') do sed -e "s/aaa/bbb/" %%~snxa

みたいにすればいけるよ。

794:デフォルトの名無しさん
09/04/20 23:23:15
ロングファイルネームのファイルを使えない間抜け

795:デフォルトの名無しさん
09/04/20 23:27:57
いやそんな面倒な事しなくても普通は出来るから。

796:デフォルトの名無しさん
09/04/20 23:51:03
ロングファイルネームが使えるWindows用sedって無いですよね?

797:デフォルトの名無しさん
09/04/21 00:00:55
>>796
これとか
URLリンク(www.kt.rim.or.jp)


798:デフォルトの名無しさん
09/04/21 00:53:20
Cygwinでsed動かせばいいんじゃないの?
まあCygwinはCygwinでパスの扱いに難を感じることもあるけどさ。

799:デフォルトの名無しさん
09/04/21 01:13:57
sed使わなければいいんじゃないの?


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4729日前に更新/163 KB
担当:undef