home > 基礎編 >

ForNext

Shut the fuck up and write some code

実行時引数を表示

VBScript

更新日 : 2012.04.16
For Each arg In WScript.Arguments
    WScript.Echo arg
Next
P:\>cscript //nologo "S:\101 引数を表示\VBScript\lesson001.vbs" aaa bbb ccc ddd
aaa
bbb
ccc
ddd

P:\>
For i = 0 To WScript.Arguments.Count - 1
    WScript.Echo WScript.Arguments(i)
Next

JScript

更新日 : 2012.04.16
var arg = new Enumerator(WScript.Arguments);
for (; !arg.atEnd(); arg.moveNext())
{
    WScript.Echo(arg.item());
}
P:\>cscript //nologo "S:\101 引数を表示\JScript\lesson001.js" aaa bbb ccc ddd
aaa
bbb
ccc
ddd

P:\>
for (var i=0;i<WScript.Arguments.length;i++)
    WScript.Echo(WScript.Arguments(i)); // 配列ではないので Arguments[i] ではない
for (arg in WScript.Arguments)
    WScript.Echo(arg); //何も表示されない

Perl

更新日 : 2012.04.16
foreach $arg (@ARGV) 
{
    print "$arg\n";
}
P:\>Perl "S:\101 引数を表示\Perl\lesson001.pl" aaa bbb ccc ddd
aaa
bbb
ccc
ddd

P:\>
for ($i=0;$i<=$#ARGV;$i++)
{
    print "$ARGV[$i]\n";
}
for $i(0..$#ARGV)
{
    print "$ARGV[$i]\n";
}
foreach $i(0..$#ARGV)
{
    print "$ARGV[$i]\n";
}
map {print $_, "\n" } @ARGV;

PHP

更新日 : 2012.04.16
<?php
    foreach($argv as $arg)
    {
      echo $arg, "\n";
    }
?>
P:\>PHP "S:\101 引数を表示\PHP\lesson001.php" aaa bbb ccc ddd
S:\101 引数を表示\PHP\lesson001.php
aaa
bbb
ccc
ddd

P:\>
<?php
    for ($i=0; $i<$argc; $i++)
        echo  "$argv[$i]\n";
?>
<?php
    foreach (range(0, $argc-1) as $i)
        echo  "$argv[$i]\n";
?>
<?php
    array_walk($argv, "puts");

    function puts($s)
    {
        echo $s, "\n";
    }
?>
<?php
    array_map("puts", $argv);

    function puts($s)
    {
        echo $s, "\n";
    }
?>

Python

更新日 : 2012.04.17
import sys

for arg in sys.argv:
    print arg
P:\>Python "S:\101 引数を表示\Python\lesson001.py" aaa bbb ccc ddd
S:\101 引数を表示\Python\lesson001.py
aaa
bbb
ccc
ddd

P:\>
import sys

for i in range(0, len(sys.argv)):
    print sys.argv[i]
import sys

for i in range(len(sys.argv)):
    print sys.argv[i]

Ruby

更新日 : 2012.04.17
ARGV.each do |arg|
    puts arg
end
P:\>Ruby "S:\101 引数を表示\Ruby\lesson001.rb" aaa bbb ccc ddd
aaa
bbb
ccc
ddd

P:\>
ARGV.map do |arg|
    puts arg
end
ARGV.map {|arg| puts arg}
for i in 0..ARGV.size-1
    puts ARGV[i]
end
(0..ARGV.length-1).each do |i|
    puts ARGV[i]
end

PowerShell

更新日 : 2012.06.08
$args | foreach {Write $_}
PS S:\> S:\test001.ps1 aaa bbb ccc
aaa
bbb
ccc
foreach($arg in $args)
{
  $arg
}
for ($i = 0; $i -le  $args.length; $i++)
{
    $args[$i]
}

Scala

更新日 : 2012.04.17
■ lesson001.scala
object lesson001 {
    def main(args:Array[String]) {
        args.foreach(println)

        for (arg <- args)
            println(arg)
    }
}
■ lesson002.scala
args.foreach(println)

for (arg <- args)
    println(arg)
■ Scala に 日本語が渡せなかった
P:\>scala
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.

scala> ""S:\101 ???????\?ヲ\Scala\lesson001.scala""
<console>:1: error: ';' expected but integer literal found.
       ""S:\101 ???????\?ヲ\Scala\lesson001.scala""
            ^

scala> p:
     | equit
<console>:9: error: not found: type equit
              equit
              ^
<console>:8: error: not found: value p
              p:
              ^

scala> :quit
■ Scala に ファイル名を渡しているのだが、うまくいかない...
P:\>scala -Xnojline
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.

scala> "S:\101 引数を表示\Scala\lesson001.scala"
<console>:1: error: invalid escape character
       "S:\101 引数を表示\Scala\lesson001.scala"
                     ^
<console>:1: error: invalid escape character
       "S:\101 引数を表示\Scala\lesson001.scala"
                           ^

scala> :quit

P:\>cd "S:\101 引数を表示\Scala"

P:\>scala -Xnojline
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.

scala> lesson001.scala
<console>:8: error: not found: value lesson001
              lesson001.scala
              ^

scala> "S:\101 引数を\表示\Scala\lesson001.scala"
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\Scala\lesson001.scala"
                   ^
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\Scala\lesson001.scala"
                      ^
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\Scala\lesson001.scala"
                            ^

scala> "S:\101 引数を\表示\\Scala\lesson001.scala"
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\\Scala\lesson001.scala"
                   ^
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\\Scala\lesson001.scala"
                             ^

scala> "S:\101 引数を\表示\\S\cala\lesson001.scala"
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\\S\cala\lesson001.scala"
                   ^
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\\S\cala\lesson001.scala"
                         ^
<console>:1: error: invalid escape character
       "S:\101 引数を\表示\\S\cala\lesson001.scala"
                              ^

scala> .\lesson001.scala
<console>:1: error: illegal start of definition
       .\lesson001.scala
       ^

scala> :quit

P:\>S:\Chapter101\Scala\lesson001.scala

P:\>scala
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.

scala> S:\Chapter101\Scala\lesson001.scala
<console>:8: error: not found: value S
              S:\Chapter101\Scala\lesson001.scala
              ^
res1: scala.tools.nsc.io.File = S:\Chapter101\Scala\lesson001.scala
■ 「:load」させてみた
scala> :load S:\Chapter101\Scala\lesson001.scala
Loading S:\Chapter101\Scala\lesson001.scala...
<console>:8: error: not found: value args
              args.foreach(println)
              ^
<console>:8: error: not found: value args
              for (arg <- args)
                          ^

scala> :load S:\Chapter101\Scala\lesson001.scala
Loading S:\Chapter101\Scala\lesson001.scala...
<console>:8: error: not found: value args
              println(args.mkString(", "))
                      ^

scala> :load S:\Chapter101\Scala\lesson001.scala
Loading S:\Chapter101\Scala\lesson001.scala...
defined module lesson001

scala> lesson001 aaa bbb ccc ddd
<console>:9: error: value aaa is not a member of object lesson001
              lesson001 aaa bbb ccc ddd
                        ^

scala> lesson001.main aaa bbb ccc ddd
<console>:9: error: missing arguments for method main in object lesson001;
follow this method with `_' if you want to treat it as a partially applied function
              lesson001.main aaa bbb ccc ddd
                        ^

scala> lesson001
res7: lesson001.type = lesson001$@1f5910e

scala> main aaa bbb ccc ddd
<console>:8: error: not found: value main
              main aaa bbb ccc ddd
              ^

scala> aaa
<console>:8: error: not found: value aaa
              aaa
              ^

scala> S:\Chapter101\Scala\lesson001.scala aaa bbb ccc ddd
<console>:9: error: not found: value S
              S:\Chapter101\Scala\lesson001.scala aaa bbb ccc ddd
              ^

scala> :quit
■ ファイル名と引数を渡してみた (ようやくOK)
P:\>scala "S:\Chapter101\Scala\lesson001.scala" aaa bbb ccc ddd
aaa
bbb
ccc
ddd
aaa
bbb
ccc
ddd

P:\>


P:\>scala "S:\Chapter101\Scala\lesson002.scala" aaa bbb ccc ddd
aaa
bbb
ccc
ddd
aaa
bbb
ccc
ddd

P:\>



P:\>scala
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :load "S:\Chapter101\Scala\lesson001.scala" aaa bbb ccc ddd
That file does not exist

scala> :load "S:\Chapter101\Scala\lesson001.scala"
That file does not exist

scala> :load S:\Chapter101\Scala\lesson001.scala
Loading S:\Chapter101\Scala\lesson001.scala...
defined module lesson001

scala> :load S:\Chapter101\Scala\lesson001.scala aaa bbb ccc ddd
That file does not exist

scala>
■ コンパイルして実行
P:\>scalac "S:\Chapter101\Scala\lesson001.scala"

P:\>S:\Chapter101\Scala\lesson001 aaa bbb ccc ddd
'S:\Chapter101\Scala\lesson001' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

P:\>lesson001 aaa bbb ccc ddd
'lesson001' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

P:\>p:\lesson001.class

P:\>p:\lesson001
'p:\lesson001' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

P:\>lesson001
'lesson001' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

P:\>scala lesson001
Exception in thread "main" java.lang.RuntimeException: Cannot figure out how to run target: lesson001
        at scala.sys.package$.error(package.scala:27)
        at scala.tools.nsc.GenericRunnerCommand.scala$tools$nsc$GenericRunnerCommand$$guessHowToRun(GenericRunnerCommand.scala:38)
        at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48)
        at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48)
        at scala.Option.getOrElse(Option.scala:108)
        at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:48)
        at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:17)
        at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:33)
        at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
        at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

P:\>set CLASSPATH=%CLASSPATH%;.

P:\>lesson001
'lesson001' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

P:\>scala lesson001

P:\>scala lesson001 aaa bbb ccc ddd
aaa
bbb
ccc
ddd
aaa
bbb
ccc
ddd

P:\>

色んなやり方まとめ

args.foreach(println)
for (arg <- args)
    println(arg)
args.map(arg => println(arg))
for(i <- 0 to args.length-1)
    println(args(i)) 
(0 to args.length-1).foreach(i => println(args(i))) 

F#

更新日 : 2012.04.17
■ インタープリタで実行
module lesson001

for arg in fsi.CommandLineArgs do
    printfn "%s" arg

exit 0
P:\>fsi S:\Chapter101\FSharp\lesson001.fs

Microsoft (R) F# 2.0 Interactive build 2.0.0.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

[Loading S:\Chapter101\FSharp\lesson001.fs]
S:\Chapter101\FSharp\lesson001.fs

P:\>fsi S:\Chapter101\FSharp\lesson001.fs aaa bbb ccc ddd

Microsoft (R) F# 2.0 Interactive build 2.0.0.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;



P:\stdin(0,1): error FS0078: Unable to find the file 'aaa' in any of
 P:\
> #quit;;

P:\>fsi S:\Chapter101\FSharp\lesson001.fs -- aaa bbb ccc ddd

Microsoft (R) F# 2.0 Interactive build 2.0.0.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

[Loading S:\Chapter101\FSharp\lesson001.fs]
S:\Chapter101\FSharp\lesson001.fs
aaa
bbb
ccc
ddd

P:\>
■ コンパイルして実行
open System

[<EntryPoint>]
let main(args : string[]) =
    for arg in args do
        printfn "%s" arg
    0
P:\>fsc S:\Chapter101\FSharp\lesson002.fs
Microsoft (R) F# 2.0 Compiler build 2.0.0.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

P:\>lesson002

P:\>lesson002 aaa bbb ccc ddd
aaa
bbb
ccc
ddd

P:\>

色んなやり方まとめ

module lesson001

for arg in fsi.CommandLineArgs do
    printfn "%s" arg

exit 0
module lesson001

fsi.CommandLineArgs |> Seq.iter (fun arg -> printfn "%s" arg)

exit 0
module lesson001

Array.iter (fun s -> printfn "%s" s) fsi.CommandLineArgs

exit 0
module lesson001

for i = 0 to fsi.CommandLineArgs.Length-1 do
    printfn "%s" fsi.CommandLineArgs.[i]

exit 0
module lesson001

for i in 0..fsi.CommandLineArgs.Length-1 do
    printfn "%s" fsi.CommandLineArgs.[i]

exit 0

C

C++

C++Builder

VC++

C#

更新日 : 2012.04.16
using System;

public class lesson001
{
    public static void Main(string[] args)
    {
        for(int i=0; i<args.Length; ++i)
            System.Console.WriteLine(args[i]);

        foreach (string s in args)
            System.Console.WriteLine(s);
    }
}
P:\>csc S:\Chapter101\CSharp\lesson001.cs
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.


P:\>lesson001

P:\>lesson001 aaa bbb ccc ddd
aaa
bbb
ccc
ddd
aaa
bbb
ccc
ddd

P:\>

Java

更新日 : 2012.04.16
public class lesson001 {
    public static void main(String args[]){

        for(int i= 0;i<args.length;i++)
            System.out.println(args[i]);

        for (String arg : args)
            System.out.println(arg);
    }
}
P:\>javac S:\Chapter101\Java\lesson001.java

P:\>java S:\Chapter101\Java\lesson001
Exception in thread "main" java.lang.NoClassDefFoundError: S:\Chapter101\Java\lesson001
Caused by: java.lang.ClassNotFoundException: S:\Chapter101\Java\lesson001
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: S:\Chapter101\Java\lesson001.  Program will exit.

P:\>cd S:\Chapter101\Java

P:\>java lesson001

P:\>java lesson001 aaa bbb ccc ddd
aaa
bbb
ccc
ddd
aaa
bbb
ccc
ddd

P:\>

Objective-C

D

VB

VB.NET

Delphi

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system