2013-07-23 2 views
1

У меня есть пакетный скрипт, расположенный в другой папке. (\ test remove \)Удалить строку timestamp из имен файлов в папке

Я хочу удалить 14 символов из всех .csv в другой папке (\ test remove \ remove from here \) папка, из которой она удаляет символы, может быть где угодно (подкаталог является примером)

  • немного фона, 14 символов являются временной меткой (YYYYMMDDHHMMSS), хочет удалить метку из CSV-файлов

Когда я бег моего сценария удаляет символы из папки, в которой партия скрипт.

setlocal EnableDelayedExpansion 
set removeFileLocation="C:\...\Desktop\test remove\remove from here\" 

for /r %removeFileLocation% %%x in (*.csv) do (
     set "oldname=%%~Nx" 
     set "newname=!oldname:~,-14!" 
     ren "!oldname!.csv" "!newname!.csv" 
) 

При запуске также я получаю «Система не может найти указанный файл». однако он все же успешно удаляет символы из CSV-файлов.

+0

Просто замените 'ren '! Oldname! .csv" "! Newname! .csv" 'с' ren "%% ~ dpx! Oldname! .csv" "! Newname! .csv" ' –

ответ

0

Я предлагаю вам попробовать

setlocal EnableDelayedExpansion 
set "removeFileLocation=C:\...\Desktop\test remove\remove from here" 

for /f %%x in (' dir/s/b/a-d "%removeFileLocation%\*.csv" ') do (
    set "oldname=%%~Nx" 
    set "newname=!oldname:~,-14!" 
    ECHO ren "%%~dpx!oldname!.csv" "!newname!.csv" 
) 

Примечания: set "removeFileLocation... изменяется (1), так что "rabbit's ears" заключите ВСЮ назначение, которое обеспечивает завершающие пробелы НЕ включены в стоимость присвоенного. (2) удаляется конечный \. (Это вопрос личного выбора)

FOR/F строит DIR список в памяти полных имен файлов-только (без заголовков)

The ren должен иметь имена файлов езды и пути восстановления.

ren всего лишь ECHO ed для обеспечения правильности работы. Удалите ключевое слово ECHO, чтобы активировать переименование.

То, что я считаю, что происходит с вашей оригинальной версии является то, что for/r является вновь встречая уже переименованный файл ИЛИ, так как вы не назначен полный путь к файлу, который будет переименован, это нахождение в каком-нибудь подкаталоге .csv и пытаясь переименовать его в текущий каталог, но он там не существует или уже переименован.

Смежные вопросы