在windows机器上,我得到这个错误

“touch”不能被识别为内部或外部命令、可操作程序或批处理文件。

我遵循这些指令,似乎是linux特定的,但在标准的windows命令行上,它不是这样工作的:

touch index.html app.js style.css

windows中是否有类似于linux / mac os / unix世界中的'touch'命令?为了实现这类命令,我是否需要手工创建这些文件(并修改它们以更改时间戳)?我正在使用节点,这似乎不是很…node-ish……


当前回答

对于一个非常简单的touch版本,它主要用于在当前目录中创建一个0字节的文件,另一种替代方法是创建一个touch.bat文件,并将其添加到%Path%或复制到C:\Windows\System32目录,如下所示:

touch.bat

@echo off
powershell New-Item %* -ItemType file

创建单个文件

C:\Users\YourName\Desktop>touch a.txt

    Directory: C:\Users\YourName\Desktop

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020-10-14  10:28 PM              0 a.txt

创建多个文件

C:\Users\YourName\Desktop>touch "b.txt,c.txt"

    Directory: C:\Users\YourName\Desktop

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020-10-14  10:52 PM              0 b.txt
-a----        2020-10-14  10:52 PM              0 c.txt

Also

工作与PowerShell和命令提示符。 使用现有子目录。 如果文件已经存在,则不创建该文件:

New-Item : The file 'C:\Users\YourName\Desktop\a.txt' already exists.

对于多个文件,只创建不存在的文件。 接受逗号分隔的不带空格的文件名列表,如果需要空格则用引号括起来:

C:\Users\YourName\Desktop>touch d.txt,e.txt,f.txt
C:\Users\YourName\Desktop>touch "g.txt, 'name with spaces.txt'"

其他回答

在Windows Powershell终端中模拟Unix /Mac OS X的“touch”命令不需要任何命令——无论是typenor echo。简单地使用以下简写:

$null > filename

这将在当前位置创建一个名为“filename”的空文件。使用您可能需要的任何文件扩展名,例如:. txt。

来源:https://superuser.com/questions/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell(见评论)

使用类型而不是触摸

type YOUR_FILE_NAME

但是,它仅限于单个文件

使用rem. > file.txt(注意“rem”命令后面的点) 这将创建一个空文件

如果你有WSL和适当的发行版,比如Ubuntu,你可以在CMD中有触摸命令,而不仅仅是bash终端。它适用于我的Windows 10和11 Windows终端

在命令行中使用以下命令:

fsutil file createnew filename  requiredSize

参数信息如下:

fsutil -文件系统实用程序(您正在运行的可执行文件)

文件-触发文件操作

Createnew -执行的操作(创建一个新文件)

文件名-将是文件的字面名称

requiredSize -在创建的文件中分配一个文件大小,单位为字节