[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 03/24 08:23 / Filesize : 194 KB / Number-of Response : 825
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

バッチファイルプログラミング 3.bat



1 名前:デフォルトの名無しさん [2006/05/25(木) 00:45:55 ]
前スレ
バッチファイルプログラミング 2.bat
pc8.2ch.net/test/read.cgi/tech/1104911889/

関連スレ
初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
pc8.2ch.net/test/read.cgi/win/1116131036/
MS-DOS・Win3.1総合スレッド
pc8.2ch.net/test/read.cgi/win/1025462258/
WSH(・∀・)スレッド!
pc8.2ch.net/test/read.cgi/tech/1055075469/

バッチファイルプログラミングとは・・・・
・ファイル拡張子が ".bat"
・複数のコマンドを使い、実行させるバッチファイルを作る
を満たせばOK!

672 名前:つづく mailto:sage [2007/03/15(木) 11:09:49 ]
=item -e

Print response headers. This option is always on for HEAD requests.

=item -d

Do B<not> print the content of the response.

=item -o <format>

Process HTML content in various ways before printing it. If the
content type of the response is not HTML, then this option has no
effect. The legal format values are; I<text>, I<ps>, I<links>,
I<html> and I<dump>.

If you specify the I<text> format then the HTML will be formatted as
plain latin1 text. If you specify the I<ps> format then it will be
formatted as Postscript.

The I<links> format will output all links found in the HTML document.
Relative links will be expanded to absolute ones.

The I<html> format will reformat the HTML code and the I<dump> format
will just dump the HTML syntax tree.


673 名前:つづく mailto:sage [2007/03/15(木) 11:10:20 ]
=item -v

Print the version number of the program and quit.

=item -h

Print usage message and quit.

=item -x

Extra debugging output.

=item -a

Set text(ascii) mode for content input and output. If this option is not
used, content input and output is done in binary mode.

=back

Because this program is implemented using the LWP library, it will
only support the protocols that LWP supports.


674 名前:つづく mailto:sage [2007/03/15(木) 11:12:00 ]
=head1 SEE ALSO

L<lwp-mirror>, L<LWP>

=head1 COPYRIGHT

Copyright 1995-1999 Gisle Aas.

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

=head1 AUTHOR

Gisle Aas <gisle@aas.no>

=cut

$progname = $0;
$progname =~ s,.*[\\/],,; # use basename only
$progname =~ s/\.\w*$//; # strip extension, if any

$VERSION = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);

675 名前:つづく mailto:sage [2007/03/15(木) 11:13:02 ]
require LWP;
require LWP::Debug;

use URI;
use URI::Heuristic qw(uf_uri);

use HTTP::Status qw(status_message);
use HTTP::Date qw(time2str str2time);


# This table lists the methods that are allowed. It should really be
# a superset for all methods supported for every scheme that may be
# supported by the library. Currently it might be a bit too HTTP
# specific. You might use the -f option to force a method through.
#
# "" = No content in request, "C" = Needs content in request
#
%allowed_methods = (
GET => "",
HEAD => "",
POST => "C",
PUT => "C",
DELETE => "",
TRACE => "",
OPTIONS => "",
);


676 名前:つづく mailto:sage [2007/03/15(木) 11:15:20 ]
=back

The following options controls what is displayed by the program:

=over 4

=item -u

Print request method and absolute URL as requests are made.

=item -U

Print request headers in addition to request method and absolute URL.

=item -s

Print response status code. This option is always on for HEAD requests.

=item -S

Print response status chain. This shows redirect and autorization
requests that are handled by the library.

677 名前:つづく mailto:sage [2007/03/15(木) 11:16:12 ]
=item -i <time>

Set the If-Modified-Since header in the request. If I<time> it the
name of a file, use the modification timestamp for this file. If
I<time> is not a file, it is parsed as a literal date. Take a look at
L<HTTP::Date> for recogniced formats.

=item -c <content-type>

Set the Content-Type for the request. This option is only allowed for
requests that take a content, i.e. POST and PUT. You can
force methods to take content by using the C<-f> option together with
C<-c>. The default Content-Type for POST is
C<application/x-www-form-urlencoded>. The default Content-type for
the others is C<text/plain>.

=item -p <proxy-url>

Set the proxy to be used for the requests. The program also loads
proxy settings from the environment. You can disable this with the
C<-P> option.

678 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:23:36 ]
>675のつづき

# We make our own specialization of LWP::UserAgent that asks for
# user/password if document is protected.
{
package RequestAgent;
@ISA = qw(LWP::UserAgent);

sub new
{
my $self = LWP::UserAgent::new(@_);
$self->agent("lwp-request/$main::VERSION");
$self;
}


679 名前:つづく mailto:sage [2007/03/15(木) 11:24:36 ]

sub get_basic_credentials
{
my($self, $realm, $uri) = @_;
if ($main::options{'C'}) {
return split(':', $main::options{'C'}, 2);
} elsif (-t) {
my $netloc = $uri->host_port;
print "Enter username for $realm at $netloc: ";
my $user = <STDIN>;
chomp($user);
return (undef, undef) unless length $user;
print "Password: ";
system("stty -echo");
my $password = <STDIN>;
system("stty echo");
print "\n"; # because we disabled echo
chomp($password);
return ($user, $password);
} else {
return (undef, undef)
}
}
}


680 名前:つづく mailto:sage [2007/03/15(木) 11:25:13 ]
$method = uc(lc($progname) eq "lwp-request" ? "GET" : $progname);

# Parse command line
use Getopt::Long;

my @getopt_args = (
'a', # content i/o in text(ascii) mode
'm=s', # set method
'f', # make request even if method is not in %allowed_methods
'b=s', # base url
't=s', # timeout
'i=s', # if-modified-since
'c=s', # content type for POST
'C=s', # credentials for basic authorization
'H=s@', # extra headers, form "Header: value string"
#
'u', # display method, URL and headers of request
'U', # display request headers also
's', # display status code
'S', # display whole chain of status codes
'e', # display response headers (default for HEAD)
'd', # don't display content
#
'h', # print usage
'v', # print version
#
'x', # extra debugging info
'p=s', # proxy URL
'P', # don't load proxy setting from environment
#
'o=s', # output format
);



681 名前:つづく mailto:sage [2007/03/15(木) 11:25:53 ]
Getopt::Long::config("noignorecase", "bundling");
unless (GetOptions(\%options, @getopt_args)) {
usage();
}
if ($options{'v'}) {
require LWP;
my $DISTNAME = 'libwww-perl-' . LWP::Version();
die <<"EOT";
This is lwp-request version $VERSION ($DISTNAME)

Copyright 1995-1999, Gisle Aas.

This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
EOT
}

682 名前:つづく mailto:sage [2007/03/15(木) 11:26:32 ]
usage() if $options{'h'} || !@ARGV;

LWP::Debug::level('+') if $options{'x'};

# Create the user agent object
$ua = RequestAgent->new;

# Load proxy settings from *_proxy environment variables.
$ua->env_proxy unless $options{'P'};

$method = uc($options{'m'}) if defined $options{'m'};

if ($options{'f'}) {
if ($options{'c'}) {
$allowed_methods{$method} = "C"; # force content
} else {
$allowed_methods{$method} = "";
}
} elsif (!defined $allowed_methods{$method}) {
die "$progname: $method is not an allowed method\n";
}


683 名前:つづき mailto:sage [2007/03/15(木) 11:26:52 ]
>679のつづき

=head1 SEE ALSO

L<lwp-mirror>, L<LWP>

=head1 COPYRIGHT

Copyright 1995-1999 Gisle Aas.

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

=head1 AUTHOR

Gisle Aas <gisle@aas.no>

=cut

$progname = $0;
$progname =~ s,.*[\\/],,; # use basename only
$progname =~ s/\.\w*$//; # strip extension, if any

$VERSION = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);

684 名前:つづく mailto:sage [2007/03/15(木) 11:27:39 ]
=item -i <time>

Set the If-Modified-Since header in the request. If I<time> it the
name of a file, use the modification timestamp for this file. If
I<time> is not a file, it is parsed as a literal date. Take a look at
L<HTTP::Date> for recogniced formats.

=item -c <content-type>

Set the Content-Type for the request. This option is only allowed for
requests that take a content, i.e. POST and PUT. You can
force methods to take content by using the C<-f> option together with
C<-c>. The default Content-Type for POST is
C<application/x-www-form-urlencoded>. The default Content-type for
the others is C<text/plain>.

=item -p <proxy-url>

Set the proxy to be used for the requests. The program also loads
proxy settings from the environment. You can disable this with the
C<-P> option.

685 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:33:20 ]
これは悪い嵐ですね

686 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:36:24 ]
        ___
    /´. _, -―-、ヽ、
  ./  l´[☆ィTfヘマ、 ヽ
 |  | |ィケリノ |ト}!l|
 | _| レァ予  伝yリ|    ,..、
  | fr| 《{_丿   Ljハ‖  _,ノ/`il  / / 、``_ .┼┐
  | ゞ||'''  r‐ァ`,ツイイ´  ハ il   /   |     / /
 |  | 「`}T 云'I「|{ {::::{   V リ  \
 || N {`ヾー弋イノ`衣√`ヾノ
  从 |、



687 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:37:00 ]
どうして、どこかにうpるという選択幅が思いつかなかったんだろうな。

688 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:43:48 ]
しかも大半が無意味に近いんだよな。

689 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:45:13 ]
自分の作ったものを誇示したかったんじゃないの?
テキストエディタで見ればたいしたものではないけど
数行以下のレスがほとんどのここに貼れば、ちょっとは凄そうに見えるじゃん。
実際には内容が"凄い"んじゃなくて、"凄く"邪魔なだけなんだけどねw

690 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:46:43 ]
>>665-684
そのレス数20。文句言われないわけがない。
問い詰めたい…。なぜこんな荒業を炸裂させたのかを。



691 名前:デフォルトの名無しさん [2007/03/15(木) 12:03:53 ]
2000サーバー上で文字列をテキストファイルにリダイレクトする際に、改行をいれる方法を教えてください。
お願いします。

692 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:05:31 ]
いくつかゴミが入ってるよ
せめてトリップ付ければ、ああいう邪魔はされなかっただろうし
例え邪魔されても、邪魔した方が哀れなだけだったんだがな

693 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:53:06 ]
>>691
echo. >> hoge.txt
ってのは?

694 名前:691 mailto:sage [2007/03/15(木) 13:55:24 ]
>>693
OKでした!ありがとうございました。
ていうか愚問スレ汚しスマソ

695 名前:デフォルトの名無しさん [2007/03/15(木) 14:06:29 ]
windowsで実行しているExeを定期的に監視して、
落ちていたら自動実行することってできませんか?

696 名前:デフォルトの名無しさん [2007/03/15(木) 14:08:18 ]
if文で複数の条件を書く方法を教えてください。
条件AとBとCが真のときにコマンドを実行したいのですが。

697 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 14:27:56 ]
if ($method eq "HEAD") {
$options{'s'} = 1;
$options{'e'} = 1 unless $options{'d'};
$options{'d'} = 1;
}

if (defined $options{'t'}) {
$options{'t'} =~ /^(\d+)([smh])?/;
die "$progname: Illegal timeout value!\n" unless defined $1;
$timeout = $1;
if (defined $2) {
$timeout *= 60 if $2 eq "m";
$timeout *= 3600 if $2 eq "h";
}
$ua->timeout($timeout);
}

if (defined $options{'i'}) {
if (-e $options{'i'}) {
$time = (stat _)[9];
} else {
$time = str2time($options{'i'});
die "$progname: Illegal time syntax for -i option\n"
unless defined $time;
}
$options{'i'} = time2str($time);
}


698 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 14:29:03 ]
$content = undef;
if ($allowed_methods{$method} eq "C") {
# This request needs some content
unless (defined $options{'c'}) {
# set default content type
$options{'c'} = ($method eq "POST") ?
"application/x-www-form-urlencoded"
: "text/plain";
} else {
die "$progname: Illegal Content-type format\n"
unless $options{'c'} =~ m,^[\w\-]+/[\w\-]+(?:\s*;.*)?$,
}
print "Please enter content ($options{'c'}) to be ${method}ed:\n"
if -t;
binmode STDIN unless -t or $options{'a'};
$content = join("", <STDIN>);
} else {
die "$progname: Can't set Content-type for $method requests\n"
if defined $options{'c'};
}


699 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 18:51:16 ]
バッチ以外はスレ違い

700 名前:デフォルトの名無しさん [2007/03/15(木) 19:37:24 ]
700\(^o^)/!



701 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:39:01 ]
まあ確かにバッチには違いないが長すぎたのが残念

702 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:46:50 ]
>>696
単にネストすればいいだけじゃん
一応言っておくが、ネスト以外でとか、ひとつのif文でとか、条件後出ししないでね

703 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:11:42 ]
>>695
↓のバッチでExeを起動するのはどうでしょう。

@echo off
:loop
start /wait …….exe
goto loop

704 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:14:23 ]
ウイルスの作り方

705 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:01:40 ]
>>704
病院行って来館してる患者全員とキスしまくる

706 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:39:26 ]
質問する前にGoogleで検索しましょう。www.google.co.jp
プログラム・ソフトの使い方はPC初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。

707 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:23:06 ]
>>695
バッチ単体では厳しいな。
cscript 使うなら WMI で作ったことあるけど。

708 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:32:24 ]
@rem 彼はもしかしてアスペルガー

709 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 09:11:15 ]
Cygwinのps -esWとか

710 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 17:38:37 ]
>>695
>>87,>>94



711 名前:デフォルトの名無しさん [2007/03/17(土) 00:41:35 ]
バッチで、あるテキストファイルが開かれていたらそのまま、開かれていなかったら開く、というのをやりたいんだが、良い案ある?
テキストファイルを開くのは任意のエディタを使う。

712 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 01:06:30 ]
エディタに因って開いてるファイルを得る方法は異なるわけだが、
その「任意のエディタ」ってのが開いてるファイルを標準出力に列挙するようなコマンドツール作って
そいつの結果をfor /fで当たればいいんじゃね?

というか普通エディタって、既に開いてるファイルをコマンドラインで渡しても
二重で開くことはないから、開いてる開いてないに関係なく、
単純にそのファイルをエディタに渡してやればいいような気もするが。

713 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 05:44:30 ]
>712
いや、同じファイルを重複して開けることができてしまうエディタは案外多い
一番楽なのはエディタを選ぶことかな

714 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:25:38 ]
>711
パソコン初心者ですか?
自分にできないことをバッチにやらせようとするのが根本的な間違い
バッチは人がやることを自動化するだけ
バッチにやらせる前に自分でやってみろ

あとパソコン初心者の方はこちらへどうぞ
PC初心者
pc9.2ch.net/pcqa/

715 名前:714 mailto:sage [2007/03/17(土) 11:48:37 ]
ちなみにボクは人間初心者です

716 名前:711 [2007/03/17(土) 13:13:38 ]
>>714
わからないんだったら黙ってろ、カス!

>>712、713
ありがとうございます。
メモ帳だと、何度でも開いてしまうようですね。

717 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:41:59 ]
tasklist.exe /v /fi "imagename eq notepad.exe"


718 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:22:36 ]
過去(中略)俺がこのスレにふさわしい占いバッチを作ってみたよ
今日の曜日を取得する簡単な方法はないかなぁ?

@echo off
echo 〜〜〜レス番占い〜〜〜
echo レス番号から性格を占います。あなたが書き込んだレスの番号を入力してください。
setlocal enabledelayedexpansion
set /P resuban=
set /A num=%resuban%%%13
set y=%date:~,4%&set m=%date:~5,2%&set d=%date:~8,2%
if "%m:~0,1%"=="0" set m=%m:~1%
if "%d:~0,1%"=="0" set d=%d:~1%
set t[1]=0&set t[2]=3&set t[3]=2&set t[4]=5&set t[5]=0&set t[6]=3&set t[7]=5&set t[8]=1&set t[9]=4&set t[10]=6&set t[11]=2&set t[12]=4
if %m% lss 3 set /a y=%y%-1
set /a i=(%y% + %y%/4 - %y%/100 + %y%/400 + !t[%m%]! + %d%) %% 7
set youbi[0]=日&set youbi[1]=月&set youbi[2]=火&set youbi[3]=水&set youbi[4]=木&set youbi[5]=金&set youbi[6]=土
set result[0]=誘導厨
set result[1]=スレ違い君
set result[2]=病人
set result[3]=発達障害
set result[4]=統合失調症
set result[5]=高機能自閉症
set result[6]=箸じゃなくても歯ブラシでも食べれることに気がついた
set result[7]=悪口書き込みたいが為だけにスタンバってる
set result[8]=どこかにうpるという選択幅が思いつかなかった
set result[9]=自分の作ったものを誇示したかった
set result[10]=アスペルガー
set result[11]=パソコン初心者
set result[12]=人間初心者
echo.
echo 名前:%resuban%[sage] 投稿日:%date%(!youbi[%i%]!) %time:~,8%
echo ちなみにボクは!result[%num%]!です

719 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:36:33 ]
可愛そうな人なんだから、そっとしておいてあげましょう。
そして、そっと心の中で早く病気が治る事を祈ってあげましょう。

720 名前:711 [2007/03/19(月) 00:25:10 ]
>>717
ども。
それも考えたんだけど、notepadでたまたま別のファイルを開いていたら、そっちも閉じてしまわないかな?



721 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 00:36:29 ]
tasklist.exe /v /fi "windowtitle eq filename - メモ帳"
はどう?

722 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:37:30 ]
>>720
何のために/vを指定していると思う?


723 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:44:44 ]
パソコンの使い方は板違いでスレ違い

724 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:51:54 ]
>それも考えたんだけど

馬鹿にされてるぞ

725 名前:デフォルトの名無しさん [2007/03/19(月) 23:46:49 ]
port21を即座に開放させるDOSコマンドというか、
バッチを作りたいのですが、お知恵を拝借させてください。。。

726 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 23:48:29 ]
>>725
port21って何?
解放って何?

727 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:25:15 ]
解放じゃありません、開放です。

728 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:51:28 ]
>>726
> port21って何?

( ^∀^)ゲラゲラゲラ


729 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 01:04:31 ]
port21を即座に開放させるってどういうこと?

730 名前:デフォルトの名無しさん [2007/03/20(火) 02:00:11 ]
21ってことは、FTPセッションかなんかが残っていて、困ってるんだろう・・・

Net なんとかsessionじゃ・・・たしか全部きられちゃうしなぁ。。。



731 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 02:17:08 ]
あー、IPヘルパAPIの SetTcpEntry() だな
バッチじゃどうしようもないけれどCでプログラムつくってゴリゴリすれば何とかなるね

732 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 02:19:05 ]
あと、TCPしか有効じゃないと思うから他のコネクション型ソケットはどうしようもない
最悪プロトコルスタックにかぶさるような形(んーと、UNIXならipfwか?)のドライバ作るしかないね

733 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 02:19:56 ]
>>727-728
というわけで頼んだ

734 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 05:42:18 ]
>>729
エスパーしてみるとTIME_WAITうぜぇってことじゃね?

735 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:57:29 ]
パソコンの使い方を知らない人がパソコンを買っても使えないのと同じで
パソコンの使い方を知らない人がバッチを使いこなすのは無理
バッチをやるまえにパソコンの使い方を勉強しましょう

736 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 14:15:44 ]
以上、人間初心者の主張でした。

737 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 15:05:54 ]
そうでもないか。

738 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 15:19:36 ]
>>735
俺 Linux だけじゃなく Windows でもプログラム作れるけど、
どちらの OS も全ての操作方法については知らないよ。
てか、アプリ全部使いこなせるわけがなかろう。


739 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 15:36:48 ]
バッチ = キーボードマクロ+α = キーボード履歴+α = パソコンの操作
と考えればいいだろ

バッチを書く前にパソコンの操作方法を調べればいいんだよ
それができればそのままバッチに書ける

740 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 16:55:28 ]
「アプリ全部」なんて意味のないことを書いている時点で……



741 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 17:21:44 ]
俺様からすれば、ここにいる奴らなんて初心者とすら言えないような超初心者なんだが

742 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 20:28:09 ]
>>707
wmic.exe使えばどう?
XPHomeEditionなので、XPProのインストール媒体から抜いて来たけど
他にも関連ファイルがあるみたいで使えないよー

743 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:22:27 ]
プログラム板でパソコンの使い方を教える変なやつ

744 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:29:30 ]
DOSの時代は一般教養だったかもしれんが
Windowsのコマンドプロンプトは「一般的な使い方」からは外れてるんだがな
ましてバッチとなるとその更に上の段階

745 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:30:42 ]
人間初心者乙!

746 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:38:35 ]
このスレを理解するための関連サイト
ttp://www.autism.jp/asp/

747 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:17:18 ]
そもそもこのスレの趣旨としているバッチファイルプログラミングとはコマンドプロンプトとか
なり似通っていて初心者はその区別が付かずに「パソコンの使い方」に属する質問を多く聞いて
くることは目に見えているんだからそういう話をすべて「変なやつ」「人間初心者乙!」で茶化
して終わるならこのスレいらないのではないだろうか。
知識豊富な人でスレが成り立つほどこの板は人が多いわけではないのだから大風呂敷敷いて、
来るもの拒まずの精神でスレ運営できないものか。

748 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:25:25 ]
粘着が張り付いてるだけ。

749 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:31:50 ]
そうでもないか

750 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:16:10 ]
>747
初心者は本スレへ誘導してあげるのが親切
質問にレスがつけばいいわけじゃない



751 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:57:00 ]
来るもの拒まずの精神でスレ運営「できない人」は1人だけじゃないか。
「変なやつ」「人間初心者乙!」と言われてる人は初心者ではなく
「できない人」ですよ。

752 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:09:13 ]
>このスレいらないのではないだろうか。

削除してもいいけど、本スレへ誘導するのに使えるから残してある

753 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:33:08 ]
>>752
病院に行っても治しようがないっぽいね。かわいそうだけど。

754 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:19:43 ]
shiftdown && echo on || echo off
みたいにSHIFTキーの押下で分岐するコードをよく書くんだけど
自前で作ったshiftdown相当の機能って
Windows標準のコマンドで代替きかないかな。

755 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 10:03:11 ]
利くよ

756 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 16:49:28 ]
MSHTA.EXE "about:<script>window.onunload=function(){new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(this.event.shiftKey);};close();resizeTo(0,0);</script>"|more


757 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 17:07:50 ]
バッチ以外はスレ違い

758 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 17:28:41 ]
>>757
そうだね。
だからバッチファイルで実行できる>>756はスレ違いじゃないよね。

759 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:46:31 ]
@rem = '--*-Perl-*--
@echo off
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S %0 %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
@rem ';
#!perl
#line 15
eval 'exec perl -x -S "$0" ${1+"$@"}'
if 0; # In case running under some shell

require 5;
use Getopt::Std;
use Config;


760 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:47:01 ]
$0 =~ s|.*[/\\]||;

my $usage = <<EOT;
Usage: $0 [-h]
or: $0 [-w] [-u] [-a argstring] [-s stripsuffix] [files]
or: $0 [-w] [-u] [-n ntargs] [-o otherargs] [-s stripsuffix] [files]
-n ntargs arguments to invoke perl with in generated file
when run from Windows NT. Defaults to
'-x -S %0 %*'.
-o otherargs arguments to invoke perl with in generated file
other than when run from Windows NT. Defaults
to '-x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9'.
-a argstring arguments to invoke perl with in generated file
ignoring operating system (for compatibility
with previous pl2bat versions).
-u update files that may have already been processed
by (some version of) pl2bat.
-w include "-w" on the /^#!.*perl/ line (unless
a /^#!.*perl/ line was already present).
-s stripsuffix strip this suffix from file before appending ".bat"
Not case-sensitive
Can be a regex if it begins with `/'
Defaults to "/\.plx?/"
-h show this help
EOT




761 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:48:31 ]
my %OPT = ();
warn($usage), exit(0) if !getopts('whun:o:a:s:',\%OPT) or $OPT{'h'};
# NOTE: %0 is already enclosed in doublequotes by cmd.exe, as appropriate
$OPT{'n'} = '-x -S %0 %*' unless exists $OPT{'n'};
$OPT{'o'} = '-x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9' unless exists $OPT{'o'};
$OPT{'s'} = '/\\.plx?/' unless exists $OPT{'s'};
$OPT{'s'} = ($OPT{'s'} =~ m#^/([^/]*[^/\$]|)\$?/?$# ? $1 : "\Q$OPT{'s'}\E");

my $head;
if( defined( $OPT{'a'} ) ) {
$head = <<EOT;
\@rem = '--*-Perl-*--
\@echo off
perl $OPT{'a'}
goto endofperl
\@rem ';
EOT


762 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:49:00 ]
勘弁してくれ……

763 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:49:35 ]
} else {
$head = <<EOT;
\@rem = '--*-Perl-*--
\@echo off
if "%OS%" == "Windows_NT" goto WinNT
perl $OPT{'o'}
goto endofperl
:WinNT
perl $OPT{'n'}
if NOT "%COMSPEC%" == "%SystemRoot%\\system32\\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
\@rem ';
EOT
}


764 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:50:11 ]
$head =~ s/^\t//gm;
my $headlines = 2 + ($head =~ tr/\n/\n/);
my $tail = "\n__END__\n:endofperl\n";

@ARGV = ('-') unless @ARGV;

foreach ( @ARGV ) {
process($_);
}


765 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:26:48 ]
テスト

766 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:29:26 ]
sub process {
my( $file )= @_;
my $myhead = $head;
my $linedone = 0;
my $taildone = 0;
my $linenum = 0;
my $skiplines = 0;
my $line;
my $start= $Config{startperl};
$start= "#!perl" unless $start =~ /^#!.*perl/;
open( FILE, $file ) or die "$0: Can't open $file: $!";
@file = <FILE>;
foreach $line ( @file ) {
$linenum++;
if ( $line =~ /^:endofperl\b/ ) {
if( ! exists $OPT{'u'} ) {
warn "$0: $file has already been converted to a batch file!\n";
return;
}
$taildone++;
}
if ( not $linedone and $line =~ /^#!.*perl/ ) {
if( exists $OPT{'u'} ) {
$skiplines = $linenum - 1;
$line .= "#line ".(1+$headlines)."\n";
} else {
$line .= "#line ".($linenum+$headlines)."\n";
}
$linedone++;
}


767 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:30:02 ]
if ( $line =~ /^#\s*line\b/ and $linenum == 2 + $skiplines ) {
$line = "";
}
}
close( FILE );
$file =~ s/$OPT{'s'}$//oi;
$file .= '.bat' unless $file =~ /\.bat$/i or $file =~ /^-$/;
open( FILE, ">$file" ) or die "Can't open $file: $!";
print FILE $myhead;
print FILE $start, ( $OPT{'w'} ? " -w" : "" ),
"\n#line ", ($headlines+1), "\n" unless $linedone;
print FILE @file[$skiplines..$#file];
print FILE $tail unless $taildone;
close( FILE );
}
__END__


768 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:30:34 ]
=head1 NAME

pl2bat - wrap perl code into a batch file

=head1 SYNOPSIS

B<pl2bat> B<-h>

B<pl2bat> [B<-w>] S<[B<-a> I<argstring>]> S<[B<-s> I<stripsuffix>]> [files]

B<pl2bat> [B<-w>] S<[B<-n> I<ntargs>]> S<[B<-o> I<otherargs>]> S<[B<-s> I<stripsuffix>]> [files]

=head1 DESCRIPTION

This utility converts a perl script into a batch file that can be
executed on DOS-like operating systems. This is intended to allow
you to use a Perl script like regular programs and batch files where
you just enter the name of the script [probably minus the extension]
plus any command-line arguments and the script is found in your B<PATH>
and run.


769 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:34:49 ]
=head2 ADVANTAGES

There are several alternatives to this method of running a Perl script.
They each have disadvantages that help you understand the motivation
for using B<pl2bat>.

=over

=item 1

C:> perl x:/path/to/script.pl [args]

=item 2

C:> perl -S script.pl [args]

=item 3

C:> perl -S script [args]


770 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:35:23 ]
=item 4

C:> ftype Perl=perl.exe "%1" %*
C:> assoc .pl=Perl
then
C:> script.pl [args]

=item 5

C:> ftype Perl=perl.exe "%1" %*
C:> assoc .pl=Perl
C:> set PathExt=%PathExt%;.PL
then
C:> script [args]




771 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:35:53 ]
sub process {
my( $file )= @_;
my $myhead = $head;
my $linedone = 0;
my $taildone = 0;
my $linenum = 0;
my $skiplines = 0;
my $line;
my $start= $Config{startperl};
$start= "#!perl" unless $start =~ /^#!.*perl/;
open( FILE, $file ) or die "$0: Can't open $file: $!";
@file = <FILE>;
foreach $line ( @file ) {
$linenum++;
if ( $line =~ /^:endofperl\b/ ) {
if( ! exists $OPT{'u'} ) {
warn "$0: $file has already been converted to a batch file!\n";
return;
}
$taildone++;
}
if ( not $linedone and $line =~ /^#!.*perl/ ) {
if( exists $OPT{'u'} ) {
$skiplines = $linenum - 1;
$line .= "#line ".(1+$headlines)."\n";
} else {
$line .= "#line ".($linenum+$headlines)."\n";
}
$linedone++;
}


772 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:38:53 ]
$head =~ s/^\t//gm;
my $headlines = 2 + ($head =~ tr/\n/\n/);
my $tail = "\n__END__\n:endofperl\n";

@ARGV = ('-') unless @ARGV;

foreach ( @ARGV ) {
process($_);
}







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<194KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef