我的文件夹\文件结构如下:
C:\Folder1\Folder2\CustomerFolder\Files.7z
我已经设置了一个ftp服务器,所以结构很奇怪。无论如何,在每个客户文件夹中,每个文件大约有10个文件。我想运行一个批处理文件,创建一个文本文件,该文件将进入每个客户文件夹并返回最新的文件日期(不关心名称,需要知道文件何时创建)。文本文件如下所示:
CustomerFolder1 - 1/1/2014
CustomerFolder2 - 12/3/2013
这是我到目前为止,for / f是我停止的地方:
for /d %%D in ("C:\ftp\localuser\*") do (
cd /d "%%D"
for /f
答案 0 :(得分:1)
我创建了一些代码,但您可能需要在计算机上使用日期/时间格式。您还可以更改显示信息(添加更多回波线)。
@echo off
SetLocal enabledelayedexpansion
set "ftpuserdir=C:\ftp\localuser"
for /d %%D in (%ftpuserdir%\*) do (
echo.|set /p some=%%D
set found=0
for /f "tokens=*" %%a in ('dir /TC /O-D /B /A-D "%%D\*" 2^>nul') do (
if !found!==0 (
for /f "tokens=*" %%z in ('dir "%%D\%%a" 2^>nul') do (
echo %%z | find "%%a">nul
if !errorlevel!==0 (
rem echo Last file=%%z
for /f "tokens=1,2,3,*" %%s in ('echo %%z') do (
echo - %%s_%%t_%%u
)
echo.
set found=1
)
)
)
)
)
如果您对代码有疑问,请与我们联系。我知道这很复杂,但我没有设法做得更简单。
答案 1 :(得分:0)
这是修改后的代码:
@echo off SetLocal enabledelayedexpansion 设置“ftpuserdir = C:\ csftp \ localuser” for / d %% D in(%ftpuserdir%*)do( echo。| set / p some = %% D set found = 0 for / f“tokens = ”%% a in('dir / TC / O-D / B / A-D“%% D *”2 ^> nul')do( if!found!== 0( for / f“tokens = ”%% z in('dir“%% D \ %% a”2 ^> nul')do( echo %% z |找到“%% a”> nul if!errorlevel!== 0( rem echo上一个文件= %% z for / f“tokens = 1,2,3,*”%% s in('echo %% z')do( echo %% D %% s>> 1.txt
)
:: echo.
set found=1
)
)
)
)
)
这是屏幕结果(我还不能发布图片..) C:\ csftp \ localuser \ cs1234C:\ csftp \ localuser \ cs34234C:\ csftp \ localuser \ cs4387
它继续这样......
并且文本文件没有列出所有内容,有点跳过..在C:\ csftp \ localuser文件夹中我有100个子文件夹我需要这个文件才能通过。
答案 2 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=u:\ftp\localuser"
SET "spaces= "
(
for /d %%D in ("%sourcedir%\*") do (
pushd "%%D"
SET "latest="
FOR /f "delims=" %%a IN ('dir /b /a-d /o:-d') DO IF NOT DEFINED latest (
SET latest=Y
FOR /f "delims=" %%q IN ("%%D") DO SET cdir=%%~nxq%spaces%
FOR /f "tokens=1" %%t IN ("%%~ta") DO CALL ECHO %%cdir:~0,20%% - %%t
)
popd
)
)>newfile.txt
TYPE newfile.txt
GOTO :EOF
您需要勾选目录名的长度以适合您的最大值和可能的日期 - 如果它显示日期名称,则将tokens=1
更改为tokens=2
。
我还更改了源目录名称以适合我的系统。你需要修复它以适合你的。