这些 PHP 和 Bash 命令等效于 Windows 批处理命令

这些 PHP 和 Bash 命令等效于 Windows 批处理命令

如果我在 Linux 中有这些命令,那么 Windows 中等效的命令是什么?

if (!is_dir('geoip')) mkdir('geoip', 0744);
shell_exec('unzip -oj GeoLiteCity.zip -d geoip/');

shell_exec('rm -rf geoip/');

答案1

您应该下载并安装操作系统获取 Windows 上的所有基本 UNIX 命令,例如,,,,,,,,——wget您所需要的一切。sedcatgreprmmkdirunzip

http://sourceforge.net/projects/getgnuwin32/files/latest/download?source=files

答案2

如果您可以忽略错误,则以下内容适用于您的 PHP 命令:

(希望您在执行此操作之前已经得到一份声明,将您的流程放入正确的子目录中......就像这样)

cd c:\mystuff\temp\

mkdir geoip
unzip -oj GeoLiteCity.zip -d geoip/
rmdir /S /Q geoip/

如果地理信息已经存在,mkdir 将返回错误,但这不是致命的。当然,如果你在已有内容之上解压某些内容,就会出现问题。但你的原始脚本也没有涵盖这一点。

rmdir /S /Q geoip/将删除子目录地理信息以及其下方的任何内容。与以下相同射频

当心删除目录 /S /Q,你很容易就会用它做出一些蠢事。

答案3

  • 给定一个文件夹,解压到该位置
  • 给定无效路径,创建目录并解压缩
  • 给定一个文件,将该文件重命名为 filename.old,创建目录并解压缩

脚本

@echo off

IF NOT EXIST %1 GOTO Make_Folder

REM File exists, test to see if it's a folder
REM Get attributes of first param. 
set ATTR=%~a1

REM if first character is "d", it's a folder
set DIRATTR=%ATTR:~0,1%
IF /I "%DIRATTR%"=="d" GOTO Extract

:Is_File
echo %1 already exists and will be renamed. 
pause
ren %1 %1.old

:Make_Folder
mkdir %1
attrib +r %1

:Extract
unzip -oj GeoLiteCity.zip -d geoip
echo Extraction test complete. Extracted files will now be deleted. 
pause
attrib -r -s -h %1
rmdir /S /Q %1

用法

script "my folder"

相关内容