我正在尝试使用PHP CLI中提供的-W标志来删除.php文件中的所有空格和代码注释。我使用一个批处理文件递归地遍历项目中的每个php文件。批处理命令如下所示:
FOR /F "tokens=*" %%G IN ('DIR /B /A-D /S *.php') DO "%php-exe-path%/php.exe" -w %%G > %%G 这只会生成空白的.php文件(使用'>‘重定向器),但是使用附加重定向器('>>')可以很好地工作。我不确定这是PHP锁定文件的问题还是我的批处理命令的问题。
有人能帮上忙吗?
发布于 2010-01-03 05:16:24
通常:不要再通过管道将处理文件的命令输出到文件中。而不是通过管道连接到临时文件,删除旧文件并将临时文件重命名为旧名称。类似于下面的内容:
FOR /F "tokens=*" %%G IN ('DIR /B /A-D /S *.php') DO (
"%php-exe-path%/php.exe" -w %%G > %%G.temp
del %%G
ren %%G.temp %%G
)附注:请不要在dir的输出上使用for /f,因为这会引入一些微妙但令人讨厌的错误。取而代之的是使用适当的方式迭代文件,这只是普通的for,并使用/r开关递归:
FOR /R %%G IN (*.php) DO (
"%php-exe-path%/php.exe" -w %%G > %%G.temp
del %%G
ren %%G.temp %%G
)https://stackoverflow.com/questions/1992823
复制相似问题