Você deve baixar e instalar o GnuWin32 para obter todos os comandos básicos do UNIX no Windows, por exemplo, wget
, sed
, cat
, grep
, rm
, mkdir
, unzip
- tudo o que você precisa.
Quais são os comandos equivalentes no Windows se eu tiver esses comandos no Linux?
if (!is_dir('geoip')) mkdir('geoip', 0744);
shell_exec('unzip -oj GeoLiteCity.zip -d geoip/');
shell_exec('rm -rf geoip/');
Se você puder se dar ao luxo de simplesmente ignorar os erros, então o seguinte funcionaria para seus comandos PHP:
(Espero que você tenha uma declaração antes de colocar o processo no subdiretório correto ANTES de fazer isso ... assim)
cd c:\mystuff\temp\
mkdir geoip
unzip -oj GeoLiteCity.zip -d geoip/
rmdir /S /Q geoip/
Se o geoip já existir, o mkdir retornará um erro, mas não é fatal. Claro, se você descompactar algo sobre algo pré-existente, você terá problemas. Mas o seu roteiro original também não cobre isso.
rmdir / S / Q geoip / removerá o subdir geoip e qualquer coisa abaixo dele. mesmo que rm -rf
SEJA CUIDADO com rmdir / S / Q , você pode fazer coisas estúpidas com isso com bastante facilidade.
script.bat
@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
Uso
script "my folder"
Tags bash windows php linux shell-script