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:\>