PowerShellを使用して作成したデスクトップにディレクトリがあり、その中にテキストファイルを作成しようとしています。
ディレクトリを新しいディレクトリに変更し、touch textfile.txt
と入力しました。
これは私が得るエラーメッセージです:
touch : The term 'touch' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:1
+ touch file.txt
+ ~~~~~
+ CategoryInfo : ObjectNotFound: (touch:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException`
なぜ機能しないのですか?常にGit Bashを使用する必要がありますか?
PowerShellでコマンドtouch
が必要な場合は、The Right Thing™を実行する関数を定義できます。
function touch {
Param(
[Parameter(Mandatory=$true)]
[string]$Path
)
if (Test-Path -LiteralPath $Path) {
(Get-Item -Path $Path).LastWriteTime = Get-Date
} else {
New-Item -Type File -Path $Path
}
}
この関数を profile に入れて、PowerShellを起動したときにいつでも使用できるようにします。
New-Alias -Name touch -Value New-Item
には必須パラメーターNew-Item
があり、PowerShellエイリアス定義にパラメーターを含めることができないため、touch
をエイリアス(-Type
)として定義することはできません。
Windows Powershellを使用している場合、Mac/Unixのタッチと同等のコマンドはNew-Item textfile.txt -type file
です。
Etan Reisner が指摘したように、touch
はWindowsでもPowerShellでもコマンドではありません。
新しいファイルをすばやく作成したい場合(既存のファイルの日付を更新するだけのユースケースには興味がないように見えます)、これらを使用できます。
$null > textfile.txt
$null | sc textfile.txt
最初のものはデフォルトでUnicodeになるため、ファイルが空にならないことに注意してください。 nicode BOM の2バイトが含まれます。
2つ目はsc
(- Set-Content
)、これは デフォルトはASCII FileSystemで使用した場合 です。
空の文字列(''
または""
または[String]::Empty
) の代わりに $null
改行することになります。
ファイルを作成するパスにcdして、次のように入力します...
New-item -itemtype file yourfilenamehere.filetype
例
New-item -itemtypeファイルindex.js
New-Item
とName
、ItemType
、およびPath
パラメータの組み合わせは私にとってはうまくいきました。私の場合、gitの_netrc
ファイルを作成するには:
New-Item -Name _netrc -ItemType File -Path $env:userprofile
参照
Power Shellで単一ファイルを作成する場合:ni textfile.txt
同時に複数のファイルを作成する場合:touch a.txt,b.html,x.js
はLinuxコマンドですni a.txt,b.html,x.js
は、Windows Power Shellコマンドです