2015-04-28 2 views
1

Я действительно близок, я думаю. Я не очень разбираюсь в таких вещах, но я собрал код, который нашел здесь. Может быть, вы можете понять, что я делаю неправильно. Вот что я получил:Последовательный мягкий цифровой префикс, подстрочный индекс, скопированный в новую папку на основе txt Список файлов

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set /p "number=Please enter the starting control number:" || goto :eof 

    for /f "delims=" %%a in (List.txt) do (
    setlocal enabledelayedexpansion 
    for %%b in (!number!) do (
     endlocal 
     echo copy "%%~fa" "c:\myfolder\%%b_%%~nx" 
    ) 
    set /a "number+=1" 
) 

До сих пор он выдает в случае необходимости, за исключением того, что файл не создается с именем theoriginal в конце. Он фактически суффиксы «% ~ nx» как текст.

По существу, я хочу, чтобы он взял исходный файл, нажав на префикс, подсчитывая с предоставленного номера, дополненный (эта часть, в которой я еще не работал), в новую папку.

Спасибо за чтение!

Вот что я neded с:

setlocal enableextensions enabledelayedexpansion 

set /p "dir=Set output dir:" || goto :eof 

set /p "d=Set total digits:" || goto :eof 
set number=1 
for /f "delims=" %%a in (List.txt) do (
setlocal enabledelayedexpansion 
for %%b in (!number!) do (
    set "pad=0000000000%%b" 
    set "name=!pad:~-%d%! 
    copy "%%~fa" "%dir%\!name!_%%~nxa" 
) 
set /a "number+=1" 
) 
+0

Решение опубликовано – BGCDVDYM

ответ

1

~nx это имя переменной называется x. Возможно, вы имели в виду либо ~nxa, либо ~nxb, который является именем и расширением ваших двух переменных for.

Почему существует EndLocal в середине цикла?

+0

Ah! Да! Спасибо! И чтобы ответить на ваш вопрос, я понятия не имею. Это было там, в коде, на котором я был Frankensteining, поэтому я его оставил. – BGCDVDYM

+0

Если это сработает ... – Trigger

+0

Это правда ... Честно говоря, я очень мало знаю об этом. Я просто хорош в мощениях. – BGCDVDYM