Jas*_*per 2 windows shell-script file-comparison
我正在使用 Windows NT(ish) shell 脚本语言编写一个 shell 脚本。(我的电脑装有 Windows 10。)我想检查两个文本文件是否相同。如果文件相同,我希望我的脚本做一件事。如果文件不相同,我希望我的脚本执行其他操作。脚本不应暂停以要求手动输入更多数据。
“类似问题”列表有关于 Macintosh 和 bash shell 脚本的问题。它还有一个关于运行fc或comp从命令行的答案,提供详细的输出。不幸的是,fc不会向 返回结果%errorlevel%,并comp要求手动输入数据而不是简单地退出。
我有一份 Tim Hill 关于 Windows NT shell 脚本的书。Page 216 有以下代码行, where%D1%和%D2%是目录,但我不知道如何修改它以仅处理一对文件:
for /f "tokens=*" %%I in ('fc /b %D1%\*.* %D2%\*.* ^| find /v "Comparing" ^| find /v "FC: no*"') do (set /a ERRORS+=1) & (echo %%I)
Run Code Online (Sandbox Code Playgroud)
小智 8
您可以使用此代码:
fc /b file1 file2 > nul
if errorlevel 1 goto files_differ
[files are the same, do something here]
:files_differ
[files are not the same, do something here]
Run Code Online (Sandbox Code Playgroud)
一errorlevel的1,如果这些文件是不相同的返回。
一errorlevel的2手段,该文件的一个缺失。
> nul 用于隐藏命令的输出
或者,您可以使用Busybox for Windows 并检查文件哈希值是否相同。
| 归档时间: |
|
| 查看次数: |
4189 次 |
| 最近记录: |