![]() |
forfiles с переменной @path для папок с пробелом в названии.
Здравствуйте.
Есть простой код переноса файлов PDF старше 30 дней в подпапку OLD текущей папки. Код:
@echo off В указанном виде возвращает ошибку Неправильный параметр или аргумент - '@path'. А если исключить из кода /P "%~dp0" , возвращает ошибку в синтаксисе команды для каждого файла. Как исправить? |
Цитата:
Добавьте описание переменной: Код:
set cpath=""%~dp0old\ Код:
forfiles /D -30 /M *.pdf /C "cmd /c move @path %cpath%" |
Всегда делай присваивание, как показал NickM. Только я делаю без заверш.слэша и через if всегда :
Код:
set "cpath=%~dp0old" |
NickM, wasp14, спасибо, но результат тот же - пишет "Ошибка в синтаксисе команды." при перемещении каждого файла.
|
а вы будьте хитрее
Код:
@echo off |
alpap, спасибо за совет и помощь. Но... и этот вариант не идет.
"ОШИБКА: Неправильный параметр или аргумент - '@path'." |
NuclearBox,
Код:
@echo off |
Цитата:
Код:
@echo off |
alpap, большое вам спасибо! Да, теперь понятно где была ошибка, и теперь работает.
NickM, большое спасибо, интересная рабочая заковыристая конструкция. Что такое 0x22 , какой принцип? - просветите, пожалуйста. |
Замена спец.символов на коды.
А так да, наверное это не оч.красивая конструкция. Код:
forfiles /? Скрытый текст
Код:
/C <команда> Команда, которая выполняется для каждого файла. |
Поменяй сразу путь, чтоб forfiles без указания папки заработал и сё ↓
Код:
chcp 1251 >nul |
wasp14, и тебе спасибо, вариант, супер.
Всем спасибо за помощь и знания! |
wasp14, в Вашем случае код сработает только если old является поддиректорией, верно?
|
Цитата:
|
NickM, из справки forfiles:
Код:
Параметры: Цитата:
Цитата:
|
Цитата:
если в команде удаление, а путь покорежился - кодировка, спецсимволы ...? - мало ли, то снос всего что рядом молча без вопросов частое явление, но неприятное. |
alpap, и-мен-но, по этому и нужно менять рабочую дир-у на путь к батнику. А сам батнег, лежит в созданном для него temp-e , где и упражняемся на временных файлах. temp всегда "предельно упорот", с кириллицей и пробелами, для\шобы не попасть.
Отлаженный таким способом варик скрипта, копируем в папку откуда будем жЭчь... и обычно всё хорошо.(у меня Тотал, потому менять дир-ы и копировать 'из-в' оч.просто) Вам достаточно известно, насколько глюкав и "просто_глупый", этот язык. Здесь много неочевидных условностей. И если можно часть неопределённостей сбросить на саму "тулзу"(forfiles или dir), то это нужно делать КМК . cd \d мой лучший друг :) |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Код:
pushd "…" && ( |
Цитата:
Скрытый текст
![]() Ctrl-F, Tab: ![]() Enter. |
Время: 16:40. |
Время: 16:40.
© OSzone.net 2001-