Удаление файлов с "импоршными" символами

Обсуждение программ nnCron и nnCron LITE

Удаление файлов с "импоршными" символами

Postby VladimirV » Sat, 25 Mar 2017, 00:43

Простая команда
Code: Select all
WITHDIRS S" c:\tmp\*" 5 PURGE-OLDW

Если имя файла написано русскими/английскими буквами, всё нормально. Но стоит в имени появится "Ê" или не дай бог "譜", всё, тушите свет.
Есть ли выход из ситуации?
VladimirV
 
Posts: 5
Joined: Thu, 14 Feb 2013, 22:32

Re: Удаление файлов с "импоршными" символами

Postby elos » Sat, 25 Mar 2017, 22:51

А временные атрибуты файлов подходят к условиям задачи? Ты эти файлы откуда берёшь с такими символами? Результаты DIR к осмотру, если что...

Глубинная функция, которая у тебя будет стирать файл - это WINAPI: DeleteFileA (смотрел в исходниках spf 4.19). Тут всё может свестись в какой винде ты это делаешь, ANSI или Unicode... Глубина пути... По ссылке глянь.

У меня в Win7EnterpriceSP1x64 стирает из проводника файлы с твоими символами в имени и просто так и в папке. Правда из корня диска. MAX_PATH не превышал.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Удаление файлов с "импоршными" символами

Postby Wyz » Sun, 26 Mar 2017, 06:44

elos wrote:Глубинная функция, которая у тебя будет стирать файл - это WINAPI: DeleteFileA (смотрел в исходниках spf 4.19). Тут всё может свестись в какой винде ты это делаешь, ANSI или Unicode

Все уже сведено к ансишной функции >:->
Кстати, сейчас "Ê" в "Е" или "E" не переделывается? >:-> Проверять лень.
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Удаление файлов с "импоршными" символами

Postby VladimirV » Sun, 26 Mar 2017, 23:57

Результаты "дир" в картинке, ибо при попытке выложить их текстом, форум выдаёт ошибку "Incorrect string value: '\xF0\x9F\x92\xAA.m...' for column 'post_text' at row 1 [1366]":
Система Win7x32. Стоит только при переименовании убрать из имени файла нехорошие символы, всё сразу-же удаляется.
Глубина пути реальная в коде.
Реальный вывод DIR из под CMD
Вывод DIR с исправлением символов на то, как они выглядят в проводнике
VladimirV
 
Posts: 5
Joined: Thu, 14 Feb 2013, 22:32

Re: Удаление файлов с "импоршными" символами

Postby elos » Mon, 27 Mar 2017, 17:11

Н-да... Из nncron скрипт удалил "простой" файл и оставил все "импортные". Раз из проводника "импортные" удаляются - виноват крон. В данном конкретном слове...
Я не проверял FILE-DELETE: "filename", тем более там только маски файлов и для отбора по атрибутам придётся писать код.

Но вспомнил про свою старую заготовку "Удаление файлов"... Ключи типа -DW или -DWLT подберёшь сам.
Code: Select all
D:\TEMP\1>dir/S/TW
 Том в устройстве D имеет метку WORKS
 Серийный номер тома: 0B2D-48F0

 Содержимое папки D:\TEMP\1

27.03.2017  17:05    <DIR>          .
27.03.2017  17:05    <DIR>          ..
27.03.2017  17:05    <DIR>          2
20.01.2017  15:27                37 씨스타(SISTAR) - 나혼자 Music Video (Alone).txt
               1 файлов             37 байт

 Содержимое папки D:\TEMP\1\2

27.03.2017  17:05    <DIR>          .
27.03.2017  17:05    <DIR>          ..
20.01.2017  15:27                37 씨스타(SISTAR) - 나혼자 Music Video (Alone).txt
               1 файлов             37 байт

     Всего файлов:
               2 файлов             74 байт
               5 папок  189 928 415 232 байт свободно

D:\TEMP\1>D:\_CODING\nnBackup302b3b147\nnbackup.exe copy -i "D:\TEMP\1" -o \\?\nul -v -s -d
nnBackup. V 3.02b3 Build 147 2012-03-22 13:37
Copyright (C) 2001-2017 nnSoft. nemtsev@nncron.ru
Mo 27.Mar.2017 17:08 Start copy
Mo 27.Mar.2017 17:08 D:\TEMP\1\???(SISTAR) - ??? Music Video (Alone).txt
Mo 27.Mar.2017 17:08 D:\TEMP\1\2\???(SISTAR) - ??? Music Video (Alone).txt
Mo 27.Mar.2017 17:08 Stop copy

D:\TEMP\1>dir/S/TW
 Том в устройстве D имеет метку WORKS
 Серийный номер тома: 0B2D-48F0

 Содержимое папки D:\TEMP\1

27.03.2017  17:08    <DIR>          .
27.03.2017  17:08    <DIR>          ..
27.03.2017  17:08    <DIR>          2
               0 файлов              0 байт

 Содержимое папки D:\TEMP\1\2

27.03.2017  17:08    <DIR>          .
27.03.2017  17:08    <DIR>          ..
               0 файлов              0 байт

     Всего файлов:
               0 файлов              0 байт
               5 папок  189 928 415 232 байт свободно

Не забываем, что ключ -d не работает с папками - только с файлами.

А клипы сочные...
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Удаление файлов с "импоршными" символами

Postby dothen » Tue, 28 Mar 2017, 04:19

VladimirV wrote:Есть ли выход из ситуации?

elos, чуть исправил.
Code: Select all
START-APP: d:\nnBackup\nnbackup.exe copy -i "c:\tmp" -o %NUL% -v -s -d
Да уж -d

Еще вариант с forfiles.exe:
Code: Select all
\ Удалить только файлы.
START-APP: forfiles /p c:\tmp /m * /d -5 /s /c "cmd /c del @path /q"

\ Удалить каталоги.
START-APP: forfiles /p c:\tmp /m * /d -5 /s /c "cmd /c IF @isdir==TRUE rmdir @path /s /q"
Похоже что для папок тут проверяется дата создания а не изменения.
dothen
 
Posts: 184
Joined: Mon, 16 Mar 2015, 04:58

Re: Удаление файлов с "импоршными" символами

Postby VladimirV » Tue, 28 Mar 2017, 19:52

Всем огромное спасибо за примеры. Думаю, что вариант с forfiles мне подойдёт лучше.
VladimirV
 
Posts: 5
Joined: Thu, 14 Feb 2013, 22:32


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest

cron