1

以下批处理代码(文件名为autoFTP.bat)将重命名文件夹中的文件:

@echo off
setlocal EnableDelayedExpansion
::---------- Path to files that must be renamed
for /f "delims=" %%i in ('dir /b D:\folder\*.htm') do (
::---------- Path to md5sums.exe
for /f "skip=3 delims=" %%j in ('md5sums -n -b "%%i"') do (
set number=%%i
set file=%%j
set file=!file:*.htm=!
for %%k in (!file!) do (
ren "%%i" "%%k.htm"
echo "!number! %%k"
)
)
)
echo.

update.php,我想运行批处理文件并在 php 文件中获取结果(文件的旧名称和新名称)。update.php包含:

$fileName = exec("cmd /c D:\folder\autoFTP.bat", $out);

foreach($out as $line) {
    echo $line;
}

从我在 php 手册中阅读的内容来看,$out应该是一个结果数组,但是$line是空的。

理论上,这个想法是我想在 DB 中更新被重命名的文件的名称(不是文件,而只是文件的重命名名称)。因此,为了做到这一点,我希望$out变量包含文件的原始名称以及重命名的文件。

如果我autoFTP.bat从 cmd 独立运行,它将正常工作;但是当我尝试从中调用它时update.php,它什么也不做。

我做错了什么,但我不知道是什么。

4

0 回答 0