Windowsマシンでは、私はこのエラーが出ます
'touch'は、内部コマンドまたは外部コマンド、操作可能プログラム、またはバッチファイルとして認識されません。
の指示に従うと する:
touch index.html app.js style.css
'touch'を使うのと同等のウィンドウはありますか?この種のコマンドを実装するために、これらのファイルを手作業で作成する必要があります(そして、タイムスタンプを変更するためにそれらを変更する必要がありますか)。そうではありません... node-ish ...
cmdウィンドウタイプで:
type nul > your_file.txt
これにより、your_file.txtファイルに0バイトが作成されます。
それをする別の方法は echo コマンドを使うことです:
echo.> your_file.txt
エコー。 - 空の行が1行のファイルを作成します。
2019-04-01に編集:
ファイルの内容を保存する必要がある場合は、>ではなく>>を使用してください。
> Creates a new file
>> Preserves content of the file
例
type nul >> your_file.txt
Windowsはtouch
コマンドをネイティブに含みません。
あなたは利用可能な公開版のどれでも使うことができますか、あなたはあなた自身の版を使うことができます。このコードをtouch.cmd
として保存し、パスのどこかに配置します。
@echo off
setlocal enableextensions disabledelayedexpansion
(for %%a in (%*) do if exist "%%~a" (
pushd "%%~dpa" && ( copy /b "%%~nxa"+,, & popd )
) else (
type nul > "%%~fa"
)) >nul 2>&1
引数リストを繰り返し処理し、存在する場合は要素ごとにファイルのタイムスタンプを更新し、それ以外の場合は作成します。
あなたはこのコマンドを使うことができます:ECHO >> filename.txt
現在のフォルダに指定された拡張子のファイルが作成されます。
更新:
空のファイルを使うには: コピーNUL filename.txt
答えは間違っています。ファイルが存在しない場合にのみ機能します。ファイルが存在する場合、最初のコマンドを使用しても何も行われず、2番目のファイルではファイルの末尾に1行追加されます。
正しい答えは:
copy /b filename.ext +,,
私はそれをここで見つけました: https://superuser.com/questions/10426/windows-equivalent-of-the-linux-command-touch/764721#764721
コマンドラインで次のコマンドを使用します。
fsutil file createnew filename requiredSize
パラメータ情報は次のとおりです。
fsutil - ファイルシステムユーティリティ(実行している実行可能ファイル)
file - ファイルアクションを起動します
createnew - 実行するアクション(新しいファイルを作成する)
filename - 文字通りファイルの名前になります
requiredSize - 作成したファイルにファイルサイズをバイト単位で割り当てる
私はここでいくつの答えがちょうど 間違った であるかに驚いています。ファイルに何もエコーしないとECHO is ON
のようなものでファイルが埋められ、ファイルに$nul
をエコーしようとすると文字通り$nul
がファイルに入ります。さらにPowerShellの場合、$null
をファイルにエコー出力しても実際には0kbのファイルは作成されませんが、UCS-2 LE BOM
としてエンコードされたものは、ファイルにバイトオーダーマークがないことを確認する必要があると厄介になります。
ここですべての答えをテストし、いくつかの同様の答えを参照した後、私はこれらがコンソールシェルごとに動作することを保証できます。 FileName.FileExtension
をtouch
にしたいファイルのフルパスまたは相対パスに変更するだけです。
if not exist FileName.FileExtension (fsutil file CreateNew FileName.FileExtension 0) else (copy /b FileName.FileExtension +,,)
これにより、FileName.FileExtension
の代わりに0バイトの長さの新しいファイルが作成されます。タイムスタンプがelse
のコピー操作ですでに存在する場合、タイムスタンプの更新以外には、そのファイルに対して何もしません。おそらくtouch
の動作とまったく同じではありません。これは1:1機能よりも回避策であると思いますが、他のコンテンツを変更することなくファイルのタイムスタンプを更新できるCMD用の組み込みツールはありません。
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName .FileExtension ).LastWriteTime = Get-Date}
これはCMDバージョンと同じ機能を持っています。それはそのタイムスタンプ以外の既存のファイルを台無しにしないでしょう、そしてそれはあなたがFileName.FileExtension
の代わりに使うことに決めたものは何でもの真新しい空のファイルを作成するでしょう。そしてはい、それはワンライナーとしてコンソール内で動作します。 PowerShellスクリプトファイルに配置する必要はありません。
既存のファイルのタイムスタンプを変更したくない場合は、else
句を削除するだけです。
if not exist FileName.FileExtension fsutil file CreateNew FileName.FileExtension 0
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
次のコマンドでtouchの機能を再現できます。
$>>filename
これは$
と呼ばれるプログラムを実行しようとすることですが、$
が存在しない(または出力を生成する実行可能ファイルではない)場合、それによって出力は生成されません。これは本質的に機能上のハックですが、次のようなエラーメッセージが表示されます。
'$'は、内部コマンドまたは外部コマンド、操作可能プログラム、またはバッチファイルとして認識されません。
エラーメッセージが不要な場合は、次の2つのうちのいずれかを実行できます。
type nul >> filename
または
$>>filename 2>nul
type
コマンドは、nulの内容を表示しようとします。これは、読み取り時にEOF(ファイルの終わり)を返す以外のことはしません。
2>nul
は、エラー出力(出力2)をnulに送信します(これは、書き込まれるとすべての入力を無視します)。 2番目のコマンド(2>nul
を含む)は、入力が速いので、type
コマンドによって冗長になります。しかし、少なくともあなたは今、選択肢と知識を持っています。
Windows Powershell端末でUnix/Mac OS Xの 'touch'コマンドをエミュレートするためにコマンドは必要ありません - type
nもecho
も必要ありません。次の速記を使うだけです。
$null > filename
これにより、現在の場所に「filename」という名前の空のファイルが作成されます。あなたが必要とするかもしれない任意のファイル名拡張子を使用してください。 '。txt'。
ソース: https://superuser.com/questions/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (コメントを参照)
述べたように
echo >> index.html
それはどんなファイルでもよい、そしてどんな拡張子でも
notepad index.html
これにより、メモ帳エディタでファイルが開きます。
Windowsのコマンドウィンドウ(cmd.exe)で copy con [filename] を使用することもできます。
C:\copy con yourfile.txt [enter]
C:\CTRL + Z [enter] //hold CTRL key & press "Z" then press Enter key.
^Z
1 Files Copied.
これにより、ローカルディレクトリにyourfile.txt
という名前のファイルが作成されます。
Windows Power Shellでは、次のコマンドを使用できます。
New-Item <filename.extension>
または
New-Item <filename.extension> -type file
注: New-Item は、そのエイリアス ni に置き換えることができます。
簡単、テキストファイルの例
echo $null >> filename.txt
PCに Cygwin がインストールされている場合は、touchに提供されている実行可能ファイルを使用できます(Windowsコマンドプロンプトからも) :
C:\cygwin64\bin\touch.exe <file_path>