我的桌面上有一个使用PowerShell创建的目录,现在我正在尝试在其中创建一个文本文件。
我确实将目录更改为新目录,并键入DataSet
。
这是我收到的错误消息:
touch textfile.txt
为什么不起作用?我是否必须一直使用Git Bash?
答案 0 :(得分:14)
如果您需要PowerShell中的命令touch
,您可以定义一个执行The Right Thing™的功能:
function touch {
Param(
[Parameter(Mandatory=$true)]
[string]$Path
)
if (Test-Path -LiteralPath $Path) {
(Get-Item -Path $Path).LastWriteTime = Get-Date
} else {
New-Item -Type File -Path $Path
}
}
将该功能放在profile中,以便在启动PowerShell时可以使用该功能。
将touch
定义为别名(New-Alias -Name touch -Value New-Item
)在此处不起作用,因为New-Item
具有必需参数-Type
,并且您无法在PowerShell别名中包含参数定义
答案 1 :(得分:14)
如果您使用的是Windows Powershell,则Mac / Unix触摸的等效命令为:New-Item textfile.txt -type file
。
答案 2 :(得分:6)
正如Etan Reisner指出的那样,touch
不是Windows中的命令,也不是PowerShell中的命令。
如果您想快速创建一个新文件(看起来您对刚更新现有文件日期的用例不感兴趣),可以使用以下命令:
$null > textfile.txt
$null | sc textfile.txt
请注意,第一个默认为Unicode,因此您的文件不会为空;它将包含2个字节,Unicode BOM。
第二个使用sc
(Set-Content
的别名),defaults to ASCII when used on the FileSystem。
如果您使用空字符串(''
或""
或[String]::Empty
)而不是$null
,那么您最终也会有换行符。
答案 3 :(得分:2)
cd进入要在其中创建文件的路径,然后键入...
新项目-项目类型文件yourfilenamehere.filetype
示例
新项目-itemtype文件index.js
答案 4 :(得分:2)
对于在Power Shell中创建单个文件:
ni textfile.txt
要同时创建多个文件:
touch a.txt,b.html,x.js
是linux命令
ni a.txt,b.html,x.js
是Windows Power Shell命令
答案 5 :(得分:2)
概括Ansgar Wiechers' helpful answer,以支持:
多个文件作为输入,作为单个参数传递(name: tutorial
description: A new Flutter project.
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
another_flushbar: ^1.10.23
auto_route: ^2.2.0
cupertino_icons: ^1.0.2
dartz: 0.10.0-nullsafety.2
firebase_auth: ^1.3.0
firebase_core: ^1.2.1
flutter_bloc: ^7.0.1
freezed_annotation: ^0.14.2
get_it: ^7.1.3
google_sign_in: ^5.0.4
injectable: ^1.4.1
uuid: ^3.0.4
dev_dependencies:
flutter_test:
sdk: flutter
auto_route_generator: ^2.1.0
build_runner: null
flutter_lints: ^1.0.0
freezed: ^0.14.2
injectable_generator: ^1.4.1
lint: ^1.5.3
flutter:
uses-material-design: true
,与 Unix touch file1 file2
实用程序一样)而不是作为array 参数 (touch
),后者是将多个值传递给 单个 参数的 PowerShell 惯用方式。
通配符模式作为输入(仅在定位现有文件时才有意义,以更新它们的上次写入时间戳)。
touch file1, file2
以获取有关所执行操作的反馈。
注意:
该函数仅模拟 Unix -Verbose
实用程序的核心功能:
要获得更完整且更符合 PowerShell 习惯的模拟,touch
,请参阅 this answer。
该函数需要 PowerShell 4 或更高版本,因为使用了 Touch-File
数组方法(尽管它可以很容易地适应早期版本)。
.ForEach()
答案 6 :(得分:1)
@ORM\Column
与New-Item
,Name
和ItemType
参数的组合适合我。在我的例子中,为git:
Path
文件
_netrc
<强>参考强>
答案 7 :(得分:0)
如果您正在使用节点,只需使用此命令,它将安装touch。
npm install touch-cli -g
答案 8 :(得分:0)
这里是touch
方法,具有更好的错误处理:
function touch
{
$file = $args[0]
if($file -eq $null) {
throw "No filename supplied"
}
if(Test-Path $file)
{
throw "file already exists"
}
else
{
# echo $null > $file
New-Item -ItemType File -Name ($file)
}
}
将此功能添加到C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1
(如果不存在,请创建此文件)。
像这样使用它:touch hey.js
答案 9 :(得分:0)
如果你使用的是 npm,首先安装
npm install touch-cli -g
答案 10 :(得分:0)