我有一个文件夹并使用批处理文件我想知道它是否已修改(在其中创建或修改的任何文件)。
下面是获取文件夹中所有文件计数的命令。我是批处理文件的新手,不知道如何获得它,pl帮助。
set MyFolder=D:\folder1
SET file_Cnt=0
for %%o IN (%MyFolder%/*.*) DO (
SET /A file_Cnt=file_Cnt+ 1
)
echo %file_Cnt%
编辑: - 我得到了这个解决方案,但唯一的问题是我想设置一个变量(对于修改过的文件的总数),这可以在以后使用。
forfiles /S /P "%MyFolder%" /M "*" /D +0 /C "cmd /C if @isdir==FALSE echo _" | find /C "_"
编辑2: - 我尝试过以下命令来设置变量但不起作用。
forfiles /S /P "%MyFolder%" /M "*" /D +0 /C "cmd /C if @isdir==FALSE echo _" | find /C "_"
echo %_% --getting echo off message
for /F %%N in ('forfiles /S /P "%MyFolder%" /M "*" /D +0 /C "cmd /C if @isdir==FALSE echo _" ^| find /C "_"') do set "NUMBER=%%N"
echo %NUMBER% --getting echo off message
echo %%N --getting echo off message
我建议你使用PowerShell。
Get-ChildItem -Path 'D:\Folder1' | Where-Object -FilterScript { $_.LastWriteTime.Date -eq (Get-Date).Date}
从命令提示符调用。
PowerShell.exe -c "Get-ChildItem -Path 'D:\Folder1' | Where-Object -FilterScript { $_.LastWriteTime.Date -eq (Get-Date).Date}|measure | select -expand count"
以下命令获取当天在同一天创建的当前文件夹中的所有文件的列表。
for /F "tokens=2" %i in ('date /t') do dir /T:C | findstr /C:%i /B
希望这可以帮助 !
如果您只想输出文件名,可以尝试此命令
for /F "tokens=2" %i in ('date /t') do dir /T:C "C:\Test" | findstr /C:%i /B | for /f "tokens=5" %j in ('more') do @echo %j
或者,如果您想获得计数,可以尝试此命令
for /F "tokens=2" %i in ('date /t') do dir /T:C "C:\Test" | findstr /C:%i /B | find /c ":"
for /F %%N in ('forfiles /S /P "%MyFolder%" /M "*" /D +0 /C "cmd /C if @isdir==FALSE echo _" ^| find /C "_"') do (
// we can simply get %%N here or we can also set some variable here if required.
)
我认为这个问题的答案可以帮助你,他们有脚本从文件夹和文件中获取LastModified,LastAccessed和DateCreated。
以下是我的测试结果。你的命令@Mona中的错误是什么?