Я использую pscp.exe из PuTTY с параметром -ls, чтобы получить список каталогов через STDOUT в сценарий perl.
Я получаю следующий результат:
Listing directory /path/to/my/directory
drwxr-sr-x 2 234 11 4096 Feb 4 11:11 .
drwxrwxrwx 21 root root 4096 Jan 28 17:50 ..
-rw-r--r-- 1 root 11 415570 Jan 10 12:27 009800D2-10003ACC.log
-rw-r--r-- 1 root 11 131072 Dec 15 09:59 MCP.20101215_095929_644.snapshot.log
-rw-r--r-- 1 root 11 131072 Jan 19 13:32 MCP.20110119_133211_032.snapshot.log
-rw-r--r-- 1 root 11 10240105 Feb 2 22:32 MCP.20110202_173304_750.log
-rw-r--r-- 1 root 11 10240077 Feb 3 04:07 MCP.20110202_223257_159.log
-rw-r--r-- 1 root 11 10240094 Feb 3 06:29 MCP.20110203_040754_861.log
-rw-r--r-- 1 root 11 10240095 Feb 3 07:43 MCP.20110203_062936_730.log
-rw-r--r-- 1 root 11 10240066 Feb 3 10:20 MCP.20110203_074353_058.log
Однако с форматом даты / времени сложно работать. В идеале я хочу, чтобы это было 2011-02-04 10:02:33
вместо `4 февраля 10:02 '. Основная проблема в том, что нет года или секунд.
Есть ли способ указать формат даты / времени?
Почему бы вам просто не использовать plink.exe вместо удаленного выполнения команды "ls"?
Есть множество переключателей командной строки ls, которые будут форматировать вывод по вашему желанию. Более того, вы можете удаленно передать его вывод в awk, sed и т. Д.
plink.exe user@remotehost "ls -l --full-time /my/remote/directory
Я не могу комментировать, использование plink - это способ пойти, я просто предлагаю использовать --time-style="+%Y-%m-%d %H:%M:%S"
вместо того --full-time
, это избавляет вас от нежелательных вещей, отображаемых через секунды