在windows机器上,我得到这个错误
“touch”不能被识别为内部或外部命令、可操作程序或批处理文件。
我遵循这些指令,似乎是linux特定的,但在标准的windows命令行上,它不是这样工作的:
touch index.html app.js style.css
windows中是否有类似于linux / mac os / unix世界中的'touch'命令?为了实现这类命令,我是否需要手工创建这些文件(并修改它们以更改时间戳)?我正在使用节点,这似乎不是很…node-ish……
你可以用下面的命令复制touch的功能:
$>>filename
它所做的是尝试执行一个名为$的程序,但是如果$不存在(或者不是一个产生输出的可执行文件),那么它就不会产生输出。它本质上是一个功能上的黑客,但是你会得到以下错误消息:
'$'不能被识别为内部或外部命令,
可操作的程序或批处理文件。
如果你不想要错误信息,那么你可以做以下两件事之一:
type nul >> filename
Or:
$>>filename 2>nul
type命令尝试显示nul的内容,它什么也不做,只是在读取时返回一个EOF(文件的结束)。
2>nul将错误输出(输出2)发送给nul(当写入时忽略所有输入)。显然,type命令使第二个命令(带有2>nul)变得多余,因为它键入更快。但至少你现在有了选择和知识。
正如Raghuveer在他/她的回答中指出的那样,ni是PowerShell中New-Item的别名,所以你可以在PowerShell提示符中用ni来代替touch来创建文件。
如果你喜欢输入touch而不是ni,你可以在PowerShell New-Item cmdlet中设置一个touch别名。
在Windows PowerShell中创建一个触摸命令:
在PowerShell提示符中定义新的别名。
Set-Alias -Name touch -Value New-Item
现在,触摸命令的工作原理与您所期望的几乎相同。唯一的区别是您需要用逗号分隔文件列表。
touch index.html, app.js, style.css
注意,这只是为PowerShell设置别名。如果你不喜欢PowerShell,你可以在Windows上设置WSL或使用bash。
不幸的是,当您结束PowerShell会话时,别名将被忘记。要使别名永久存在,必须将其添加到PowerShell用户配置文件中。
PowerShell提示符:
notepad $profile
将别名定义添加到概要文件并保存。