params()
という名前のものはありません。param()
です。 New-Item
は、作成するファイルごとにFileInfo
オブジェクトを返すので、Out-Null
も追加しました。それがなければ、新しいファイルは2回表示されます:1回はNew-Item
から、1回はls
から1回です。
function touch{
param([String[]] $files)
ForEach($file in $files){
New-Item -Path $file | Out-Null
}
ls
}
touch -files "test.txt", "test2.txt
Directory: C:\Users\frode\TouchFolder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 30.03.2016 20:56 0 test.txt
-a---- 30.03.2016 20:56 0 test2.txt
サブフォルダtest
が欠落している場合は、test\test3.txt
のようなパスを使用する場合、ファイルが存在するかどうかは、エラーになりますのでご注意ください。 New-Item -Path $file -Force
を使用して、強制的に上書きおよびサブフォルダの作成を行うことができます。
しようと、引数を使用するには:
function touch{
ForEach($file in $args){
New-Item -Path $file | Out-Null
}
Get-ChildItem
}
touch index.html users.html "test 3.txt"
Directory: C:\Users\frode\TouchFolder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 30.03.2016 21:19 0 index.html
-a---- 30.03.2016 21:19 0 test 3.txt
-a---- 30.03.2016 21:19 0 users.html
'param()'の代わりに 'args'を使うべきですか?私はカンマ、引用符、または "ファイル"を付けずにこれを呼び出そうとしています。このようなもの: 'touch index.html users.html' –
はい、更新された回答を参照してください。しかし、PowerShellでのやり方と同じように、パラメータとコンマ区切り(PowerShellで配列を定義する方法)を使用することをお勧めします。あなたは言語を学び、他の何かを模倣しようとしないでください –