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

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

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

touch index.html app.js style.css

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


当前回答

如果你正在使用VS Code,有一个命令行工具代码可以帮助你打开VS Code中不存在的文件。

其他回答

从Windows 10上的Visual Code Studio的终端,这是我创建一个新文件的方法:

type > hello.js
echo > orange.js
ni > peach.js

你可以用下面的命令复制touch的功能:

$>>filename

它所做的是尝试执行一个名为$的程序,但是如果$不存在(或者不是一个产生输出的可执行文件),那么它就不会产生输出。它本质上是一个功能上的黑客,但是你会得到以下错误消息:

'$'不能被识别为内部或外部命令, 可操作的程序或批处理文件。

如果你不想要错误信息,那么你可以做以下两件事之一:

type nul >> filename

Or:

$>>filename 2>nul

type命令尝试显示nul的内容,它什么也不做,只是在读取时返回一个EOF(文件的结束)。

2>nul将错误输出(输出2)发送给nul(当写入时忽略所有输入)。显然,type命令使第二个命令(带有2>nul)变得多余,因为它键入更快。但至少你现在有了选择和知识。

其他的答案都少了些什么。Linux touch命令有一个-t选项,它允许您将最后修改的时间设置为任意日期和时间,而不仅仅是当前时间。

将filename.txt的修改日期设置为午夜后30分钟的2012年12月20日。

touch -t 201212210030 filename.txt

要在Windows中获得相同的效果,你需要在PowerShell中,这不能在Cmd中完成。

修改filename.txt文件的创建日期/时间戳:

(Get-Item "D:\Test\filename.txt").CreationTime=("21 December 2012 00:30:00")

修改文件名.txt文件的最后写入日期/时间戳:

(Get-Item "D:\Test\filename.txt").LastWriteTime=("21 December 2012 00:30:00")

更改文件名.txt文件的最后一次访问日期/时间戳:

(Get-Item "D:\Test\filename.txt").LastAccessTime=("21 December 2012 00:30:00")

对于一个非常简单的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命令窗口(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的文件。