请问怎么样用BAT(批处理)编写两个文件夹内容进行比较

发布于2022-01-13 09:54:52
8个回答
admin
网友回答2022-01-13
1、如果你是想比较两个文件,可以使用系统自带的命令行程序fc.exe,另外UltraEdit等编辑器也具有比较文件的功能;

2、如果你是想比较两个文件夹,Win98安装光盘提供了windiff.exe,可以在窗口方式下比较两个文件夹的内容;WinXP增强工具集中则提供了命令行方式的bindiff.exe;而第三方工具TotalCmd等资源浏览器也提供文件夹比较的功能;

3、如果限定使用批处理解决问题,可以参考我过去编写的一个小程序,在
WinXP CMD下运行通过。需要提及的是,为了程序的运行效率考虑,对同名的不同文件没有进行内容上的比较,而只是比较了文件的属性、大小和修改日期,这当然是不全面的,但应该可以满足日常的需要。

--------------------------------------------------------------
:: CompDir.cmd - Compare files in two directories.
:: Will Sort - 19:40 2005-12-23 - CMD@WinXP
@echo off & setlocal EnableDelayedExpansion
if not %2== goto Start

:Help
echo CompDir.cmd - Compare files in two directories.
echo Usage: %0 [/f] dir1 dir2 [FileSpec]
echo
/f
Compare time/size/attrib of file
echo
filespec Specific files by wildcard of filename
goto :EOF

:Start
if /i %1==/f shift && set _CompFile=on
if %3== (set filespec=*.*) else set filespec=%3
for /r %~f1 %%f in (%filespec%) do (

set file=%%~ff

set file=!file:%~f1\\=!

if not exist %~f2\\!file! echo.Only in 1: !file!
)
for /r %~f2 %%f in (%filespec%) do (

set file=%%~ff

set file=!file:%~f2\\=!

if not exist %~f1\\!file! echo Only in 2: !file!
)
if not %_CompFile%==on goto :EOF
echo Compare Time/siZe/Attrib of file...
echo Press Ctrl+C to Quit
for /r %~f1 %%f in (%filespec%) do (

set file=%%~ff

set file=!file:%~f1\\=!

if exist %~f2\\!file! for %%g in (%~f2\\!file!) do (

if %%~tf NEQ %%~tg echo !file! Time 1%%~zf NEQ 2%%~zg%temp%\\_CompFile.tmp

if %%~zf NEQ %%~zg echo !file! Size 1%%~zf NEQ 2%%~zg%temp%\\_CompFile.tmp

if %%~af NEQ %%~ag echo !file! Attrib 1%%~zf NEQ 2%%~zg%temp%\\_CompFile.tmp

)
)
if exist %temp%\\_CompFile.tmp del %temp%\\_CompFile.tmp
--------------------------------------------------------------
admin
网友回答2022-01-13
应该不会运行这个程序了,这个程序在DOS里面才有的程序
admin
网友回答2022-01-13
路径问题
admin
网友回答2022-01-13
shutdown /l
命令可以注销用户登录,但是注销后也就关闭了本用户启动的所有程序,当然也就没有办法再执行下去了
admin
网友回答2022-01-13
是不是b.exe的程序出错了
admin
网友回答2022-01-13
这是宏(vba),当然不能当做批处理文件来执行了。
admin
网友回答2022-01-13
set regkey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
if /i %username%==B (
reg add %regkey%” /v DefaultUserName /d A /f
reg add %regkey%” /v DefaultPassword /d 1234 /f
)
if /i %username%==A (
reg add %regkey%” /v DefaultUserName /d B /f
reg add %regkey%” /v DefaultPassword /d 5678 /f
)
shutdown -l -f -t 0
admin
网友回答2022-01-13
dim objset obj=createobject(wscript.shell)dat=now()obj.run cmd.exe /c echo & dat & | clip,0,0set obj=nothingwscript.quit保存成VBS 运行就OK了

回到
顶部