我正在尝试编写一个批处理文件来
- 访问 \sharelocation\folder\file
- 比较该文件与 c:\folder\file
- 如果文件相同,则运行本地文件。
- 如果文件不同,则替换本地文件并运行新的本地文件。
我被第一部分难住了。有什么好办法吗?
也许我可以用来net
将共享映射到固定字母(如果尚未映射)然后使用fc /b
?
答案1
类似这样的内容:
按照以下方式安装共享http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_use.mspx?mfr=true:
网络使用 x:\share\location
比较文件
fc c:\文件夹\文件 x:\文件夹\文件
根据此 SOq,根据需要进行分支 -https://stackoverflow.com/questions/671642/how-can-i-compare-two-files-in-a-batch-file:
如果错误级别为 1,则转到文件差异,转到无差异
卸载共享:
网络使用 x:\share\location /delete
整个脚本应该是:
net use x: \\share\location
fc c:\folder\file x:\folder\file
if errorlevel 1 goto filesDiffer
:noDifferences
echo Do something when there are no differences
goto theEnd
:filesDiffer
echo Do something when there are differences
:theEnd
net use x: \\share\location /delete
请注意,如果 x: 已映射到目标机器上,则可能会出现问题。用于fc /b
二进制比较。