Каковы эквивалентные команды в Windows, если у меня есть эти команды в Linux?
if (!is_dir('geoip')) mkdir('geoip', 0744);
shell_exec('unzip -oj GeoLiteCity.zip -d geoip/');
shell_exec('rm -rf geoip/');
Каковы эквивалентные команды в Windows, если у меня есть эти команды в Linux?
if (!is_dir('geoip')) mkdir('geoip', 0744);
shell_exec('unzip -oj GeoLiteCity.zip -d geoip/');
shell_exec('rm -rf geoip/');
Вам следует скачать и установить GnuWin32, чтобы получить все основные команды UNIX для Windows, например, wget
, sed
, cat
, grep
, rm
, mkdir
, unzip
- все, что вам нужно.
http://sourceforge.net/projects/getgnuwin32/files/latest/download?source=files
если вы можете позволить себе просто игнорировать ошибки, то для ваших команд PHP будет работать следующее:
(Надеюсь, вы получили заявление до того, как поместить ваш процесс в соответствующий подкаталог, ДО того, как вы сделаете это ... вот так)
cd c:\mystuff\temp\
mkdir geoip
unzip -oj GeoLiteCity.zip -d geoip/
rmdir /S /Q geoip/
Если geoip уже существует, mkdir выдаст ошибку, но это не смертельно. Конечно, если вы распакуете что-то поверх уже существующего, у вас возникнут проблемы. Но ваш оригинальный сценарий не покрывает это либо.
rmdir /S /Q geoip / удалит subdir geoip и все, что находится под ним. такой же как rm -rf
БУДЬТЕ ОСТОРОЖНЫ с rmdir /S /Q, с ним можно легко делать глупости.
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
использование
script "my folder"