@python_beginnersЭта группа больше не существует

Страница 268 из 1885
Andrey
10.08.2016
07:18:50
Ты её не написал и удивляешься поему не работает.

Zart
10.08.2016
07:18:51
но нафея...

Maksim
10.08.2016
07:18:58
я не шарю
и что, после одной неудачной попытки забьешь на это дело? возьми прочитай немного хелпа, попробуй и добейся, чтобы работало. Зато потом будет проще. к тому же циклы - основа всего и все они похожи.

Andrey
10.08.2016
07:19:56
+ под 7 винду лучше powershell скрипты писать. Батники - это ужос.

Google
Pavel
10.08.2016
07:20:54
совсем в крайнем случае можно питоном сделать батник из пачки одинаковых команд.

Zart
10.08.2016
07:21:49
павершелл - крайне паршивая замена обычному шеллу

для запуска обычных команд порой приходится жестоко извращаться через & "..."

Andrey
10.08.2016
07:22:57
для запуска обычных команд порой приходится жестоко извращаться через & "..."
Не сталкивался с этим, но после баша повершеллом пользоваться тяжело, соглашусь.

Zart
10.08.2016
07:23:17
я активно и часто пользуюсь всеми тремя, есть что с чем сравнить

Maksim
10.08.2016
07:23:35
У него задача наитривиальнейшая, и системной cmd для этого хватит. Может, посоветовать еще написать батник в Scala? )

Andrey
10.08.2016
07:23:40
Zart
10.08.2016
07:24:08
для тех кто проебал решение его задачи тривиальным способом

for %a in ('*.crt') do certutil -dump %a > %~na.txt

апострофы лишние 8\

Roman
10.08.2016
07:24:52
for %a in ('*.crt') do certutil -dump %a > %~na.txt
%~ чет в гугле не могу найти, что это значит

% я понял как переменная

Google
Zart
10.08.2016
07:25:17
дока по %~... находится в for /? и в set /?

Roman
10.08.2016
07:25:32
оке

Zart
10.08.2016
07:26:04
это очень красивый и компактный способ сделать os.path.dirname/basename/splitext

а еще это решает проблемы с пробелами в именах

Roman
10.08.2016
07:29:43
чет батник сразу закрывается

Petr
10.08.2016
07:30:09
Ну там еще в конце чот надо дописать ь

Нало

Надо

Pavel
10.08.2016
07:30:27
pause

Roman
10.08.2016
07:31:56
все та же херня

http://scriptcoding.ru/2013/08/19/komandnaya-stroka-for/

прочитал чтобы понять что зарт скинул

но у все равно не работает как надо

т.е вообще не рабоает

Zart
10.08.2016
07:32:50
я скинул команду для консоли

если ты хочешь сунуть это в батник, тебе придётся удвоить знаки процента

for %%a in ( *.crt ) do certutil -dump %%a > %%~na.txt если внутри bat/cmd

у всех шеллов ёбнутые правила квотирования

Roman
10.08.2016
07:35:09
Сейчас запустил из консоли, он просто создал пустой файл

Google
Pavel
10.08.2016
07:35:31
Сейчас запустил из консоли, он просто создал пустой файл
это одноразовая задача или постоянно надо так делать?

Zart
10.08.2016
07:35:52
Сейчас запустил из консоли, он просто создал пустой файл
может вместо тупого копирования ты подставишь нужное?

Roman
10.08.2016
07:36:01
не постоянно, но придется, через месяц

Sergey
10.08.2016
07:36:01
у всех шеллов ёбнутые правила квотирования
В sh и его производных вроде норм, взять все в одиночную кавычку и ок. За исключением самого символа одиночной кавычки)

Roman
10.08.2016
07:36:26
может вместо тупого копирования ты подставишь нужное?
я подставил нужный путь и расширение файла

Sergey
10.08.2016
07:36:40
Zart
10.08.2016
07:36:46
так и я о том же

Sergey
10.08.2016
07:36:51
Но по сравнению с cmd...

Roman
10.08.2016
07:36:55
все, там с '' проблема была

Zart
10.08.2016
07:37:12
у кмд тяжелая история и долгая эволюция

ноги вообще от CP/M растут

Zart
10.08.2016
07:38:45
Roman
10.08.2016
07:38:51
все, заработало

Надо этот пробел в свободное время будет закрыть

Zart
10.08.2016
07:39:06
либо переходить на эскейпы вместо кавычек

Sergey
10.08.2016
07:41:10
Если не протерял одну из кавычек

Zart
10.08.2016
07:42:39
эм

$ echo "It's me" It's me не надо всё усложнять 8)

Google
Sergey
10.08.2016
07:43:37
Я ради примера с квотированием

Так-то понятно

Хотя если внутри есть символ доллара, то лучше одиночные

Zart
10.08.2016
07:44:27
$ echo "It\"s me" It"s me

Sergey
10.08.2016
07:46:09
$ echo "It\"s me" It"s me
В одиночных так не сработает

Zart
10.08.2016
07:46:14
угу...

я порой жалею что в баше нет %~

$(basename ...) на их фоне не комильфо

Admin
ERROR: S client not available

Zart
10.08.2016
07:47:58
да и ${var##...} и иже с ним тяжело идут

Sergey
10.08.2016
07:48:51
Есть shell expansions разные, если я правильно понял что желает %~

Zart
10.08.2016
07:50:42
есть %0 ... %9 такие же как $0 .. $9 в баш

а есть %~0 форма, которая квотит имя файла заново

скажем если у нас батник python %1

Roman
10.08.2016
07:53:58
Зарт, а как задать, чтобы по дате файлы брались?

Zart
10.08.2016
07:54:09
какой дате?

Sergey
10.08.2016
07:54:14
В смысле, это аналог python "$1" в bash?

Andrey
10.08.2016
07:54:32
какой дате?
А ты терпеливый. Я бы в гугл послал после такого вопроса.

Zart
10.08.2016
07:54:42
аналог python $1

Sergey
10.08.2016
07:55:17
Тогда я не понял причём тут квотирование)

Google
Sergey
10.08.2016
07:56:38
Без кавычек файл с пробелами в имени развалится на несколько параметров

Ладно, это для другого чата тема

Zart
10.08.2016
07:59:03
D:\>type 1 import sys print('this is 1') print(sys.argv) D:\>type "1 2 3.py" import sys print('this is 1-2-3') print(sys.argv) D:\>type demo1.bat python %1 D:\>demo1.bat 1 2 3.py D:\>python 1 this is 1 ['1'] D:\>demo1.bat "1 2 3.py" D:\>python "1 2 3.py" this is 1-2-3 ['1 2 3.py'] D:\>type demo2.bat python %~1 D:\>demo2.bat 1 2 3.py D:\>python 1 this is 1 ['1'] D:\>demo2.bat "1 2 3.py" D:\>python 1 2 3.py this is 1 ['1', '2', '3.py'] D:\>type demo3.bat python "%~1" D:\>demo3.bat 1 2 3.py D:\>python "1" this is 1 ['1'] D:\>demo3.bat "1 2 3.py" D:\>python "1 2 3.py" this is 1-2-3 ['1 2 3.py']

т.е. для тривиальных случаев %1 и "%~1" аналогичны

т.е. в случае с тильдой происходит экспаншен по факту

и у него есть ряд модификаторов: d - drive, p - path, n - name, e - extension

"%~ne1" в кмд полностью равно $(basename $1) баша

"%~dp1" == $(dirname $1)

с учетом того что в 0 у нас имя самого батника, это позволяет просто делать привязку относительно его: @cscript.exe -nologo "%~dp0.vbs" %*

Roman
10.08.2016
08:04:05
прочитал про сорт и дир, но там не описывается как именно по дате изменения брать файлы

/O:D

Zart
10.08.2016
08:06:14
э... обычно даты в именах файлов есть и их можно обычными вайлдкардами отловить

но если ты хочешь отловить именно по дате изменения, то на кмд вероятно можно, но заебешсо

Roman
10.08.2016
08:06:56
вот

Zart
10.08.2016
08:07:15
через %~t и вложенные форы..

ну иво нахуй

Sergey
10.08.2016
08:08:41
Может и правда на Python лучше?

Zart
10.08.2016
08:09:06
для более сложных случаев скорее всего да

Roman
10.08.2016
08:09:50
%~nat

так типо должно быть

Страница 268 из 1885

Эта группа больше не существует Эта группа больше не существует