Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在windows中的命令行上创建一个空文件(如linux touch命令)_Windows_Batch File_Cmd_Command Line - Fatal编程技术网

在windows中的命令行上创建一个空文件(如linux touch命令)

在windows中的命令行上创建一个空文件(如linux touch命令),windows,batch-file,cmd,command-line,Windows,Batch File,Cmd,Command Line,在windows计算机上,我遇到此错误 “触摸”不被识别为内部或外部命令、可操作程序或批处理文件 我遵循了这些似乎是linux特有的命令,但在标准windows命令行上,它不是这样工作的: touch index.html app.js style.css 在linux/mac os/unix世界中,是否存在与“touch”命令相当的windows命令?我是否需要手动创建这些文件(并修改它们以更改时间戳)以实现此类命令?我正在使用node,这似乎不太。。。node ish…在命令行上使用以下命

在windows计算机上,我遇到此错误

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

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

touch index.html app.js style.css

在linux/mac os/unix世界中,是否存在与“touch”命令相当的windows命令?我是否需要手动创建这些文件(并修改它们以更改时间戳)以实现此类命令?我正在使用node,这似乎不太。。。node ish…

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

fsutil file createnew filename  requiredSize
参数信息如下所示:

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

文件-触发文件操作

createnew—要执行的操作(创建新文件)

filename-将是文件的字面名称


requiredSize-将在创建的文件中分配以字节为单位的文件大小

Windows本机不包含
touch
命令

您可以使用任何可用的公共版本,也可以使用自己的版本。将此代码另存为
touch.cmd
,并将其放置在路径中的某个位置

@echo关闭
setlocal enableextensions disabledelayedexpansion
(对于(%*)中的%%a,如果存在请执行“%%~a”(
pushd“%%~dpa”&&(复制/b“%%~nxa”+,,&popd)
)否则(
键入nul>“%%~fa”
))>数字2>&1

它将在参数列表中迭代,如果每个元素存在,则更新文件时间戳,否则创建它。

您可以使用以下命令:ECHO>>filename.txt

它将在当前文件夹中创建具有给定扩展名的文件

更新:


对于空文件,请使用:copy NUL filename.txt

替换windows命令行(如cmd)上的touch命令的简单方法是:

type nul > your_file.txt
@echo off
powershell New-Item %* -ItemType file
这将在
your_file.txt
文件中创建0个字节

这也是在windows批处理文件中使用的一个很好的解决方案

另一种方法是使用以下命令:

回声将创建一个包含一个空行的文件


如果需要保留文件内容,请使用
>
而不是
>

>   Creates a new file
>>  Preserves content of the file
范例

type nul >> your_file.txt

您也可以使用命令

从另一个批处理程序调用一个批处理程序,而不停止父批处理程序。call命令接受标签作为调用的目标

例如:

call >> your_file.txt
也可以在Windows命令窗口(cmd.exe)中使用:


这将在本地目录中创建一个名为
yourfile.txt
的文件。

在Windows Powershell终端中模拟Unix/Mac OS X的“touch”命令时,无需使用任何命令(无论是
type
还是
echo
)。只需使用以下速记:

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


来源:(参见备注)

您可以使用以下命令复制touch的功能:

$>>filename
这样做的目的是尝试执行一个名为
$
的程序,但如果
$
不存在(或不是生成输出的可执行文件),则它不会生成任何输出。这本质上是对该功能的攻击,但您将收到以下错误消息:

“$”未被识别为内部或外部命令, 可操作的程序或批处理文件

如果您不想看到错误消息,则可以执行以下两种操作之一:

type nul >> filename
或:

type
命令尝试显示nul的内容,该命令在读取时只返回EOF(文件结束)


2>nul
向nul发送错误输出(输出2)(写入时忽略所有输入)。显然,第二个命令(使用
2>nul
)被
type
命令冗余,因为它打字更快。但至少你现在有了选择和知识。

简单,例如txt文件

echo $null >> filename.txt

答案是错误的,它只在文件不存在时才起作用。如果文件存在,则使用第一个文件不会执行任何操作,第二个文件会在文件末尾添加一行

正确答案是:

copy /b filename.ext +,,

我在这里找到它:

是的,你可以使用Node进行触摸,我只是使用了它,它在windows Cmd或gitbash中运行良好

如前所述

echo >> index.html
它可以是任何文件,具有任何扩展名 那就做吧


这将在windows Power Shell上的记事本编辑器中打开文件,您可以使用以下命令:

New-Item <filename.extension>
新项目

新项目-类型文件
注:新项目可替换为其别名ni


我很惊讶这里有多少答案是错的。不向文件中回显任何内容都会在文件中填充类似“ECHO is ON”的内容,而尝试将
$nul
回显到文件中会将
$nul
放入文件中。此外,对于PowerShell,将
$null
回显到文件中实际上不会生成一个0kb的文件,而是编码为
UCS-2 LE BOM
的文件,如果您需要确保文件没有字节顺序标记,这可能会变得混乱

在测试了这里的所有答案并参考了一些类似的答案之后,我可以保证这些答案在每个控制台shell中都能正常工作。只需将
FileName.FileExtension
更改为要触摸的文件的完整路径或相对路径;感谢提供的
复制NUL文件.EXT
更新:

CMD w/时间戳更新
copy num FileName.FileExtension

这将创建一个名为which的新文件,而不是大小为0字节的
FileName.FileExtension
。如果文件已经存在,它将基本上复制自己以更新时间戳。我想说这是一个比1:1的触摸功能更有效的解决方法,但我不同意
echo >> index.html
notepad index.html
New-Item <filename.extension>
New-Item <filename.extension> -type file
C:\cygwin64\bin\touch.exe <file_path>
type test.c > test.c.bkp && type test.c.bkp > test.c && del test.c.bkp
type > hello.js
echo > orange.js
ni > peach.js
Set-Alias -Name touch -Value New-Item
touch index.html, app.js, style.css
notepad $profile
@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 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'"
npm install touch-cli -g