如果我在 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
您所需要的一切。sed
cat
grep
rm
mkdir
unzip
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"