我尝试在不同目录下的两个文件上应用diff命令,如下所示:
diff
diff file1 directory/file2
并且它将第二个文件视为它的相对路径是文件本身的名称。有办法让它找到真正的文件吗在此基础上,我尝试添加-a和--text标志,但我的IDE(我使用vscode powershell扩展)无法识别这些标志。
dgenwo3n1#
在Windows PowerShell中,diff是Compare-Object cmdlet的别名。Compare-Object被设计用来比较2个集合,所以如果你想逐行比较两个文本文件的内容,你需要将文件内容读入内存,并将其作为参数传递给Compare-Object。要逐行读取文本文件,请使用Get-Content:
Compare-Object
Get-Content
Compare-Object (Get-Content file1) (Get-Content directory/file2)
默认情况下,Compare-Object不会强制执行严格的 * 顺序相等 *,因此具有不同顺序的相同行集的两个文件将显示为“相等”。要解决这个问题,请将0参数传递给SyncWindow参数:
0
SyncWindow
Compare-Object (Get-Content file1) (Get-Content directory/file2) -SyncWindow 0
5n0oy7gb2#
作为@Mathias R. Jessen评论道:diff(gc file1)(gc path/to/file2)
2条答案
按热度按时间dgenwo3n1#
在Windows PowerShell中,
diff
是Compare-Object
cmdlet的别名。Compare-Object
被设计用来比较2个集合,所以如果你想逐行比较两个文本文件的内容,你需要将文件内容读入内存,并将其作为参数传递给Compare-Object
。要逐行读取文本文件,请使用
Get-Content
:默认情况下,
Compare-Object
不会强制执行严格的 * 顺序相等 *,因此具有不同顺序的相同行集的两个文件将显示为“相等”。要解决这个问题,请将0
参数传递给SyncWindow
参数:5n0oy7gb2#
作为@Mathias R. Jessen评论道:
diff(gc file1)(gc path/to/file2)