exclui um nome de arquivo em FOR LOOP

0

Eu tinha alguns arquivos com nomes como cp1_2015_09_10.txt cp3_2015_09_11.txt kmps_2014_08_03.txt e cpms_2015_07_10.txt ksms_2015_10_07.txt em uma pasta do subdiretório da pasta de seleção D drive. Eu queria remover o nome do arquivo do loop for como _2015_10_07 para a data de hoje

setlocal
SET /A MAXJ=1
SET /A J=1

set   year=%date:~10,4% 

set year=%year: =%
echo %year%

set  month=%date:~7,2%
set month=%month: =%

set  day=%date:~4,2%
set day=%day: =%

FOR /F "usebackq tokens=*" %%i IN (DIR /S /B D:\check\*.txt| find /v "_%year%_%month%_%day%")  DO ( 

    SET XCOUNT_!J!=%%~i
SET MAXJ=!J!
    SET /A J+=1)
SET XCOUNT

SET /A J-=1

@echo COUNT OF FILES IS : %J%
PAUSE
    
por anjana 07.10.2015 / 17:22

1 resposta

0

Eu queria remover o nome do arquivo do loop for

FOR /F "usebackq tokens=*" %%i IN (DIR /S /B D:\check\*.txt| find /v "_%year%_%month%_%day%")  DO (

Sua sintaxe for está incorreta de duas maneiras:

  1. Você está usando usebackq

    • Isso significa que o argumento do comando para for deve ser delimitado com aspas anteriores '
  2. Você não está escapando do símbolo do pipe.

    • Substitua o símbolo | do canal por ^|

Comando for corrigido:

FOR /F "usebackq tokens=*" %%i IN ('DIR /S /B D:\check\*.txt ^| find /v "_%year%_%month%_%day%"')  DO (

Também pode haver outros erros no seu arquivo de lote ...

Sintaxe

FOR /F ["options"] %%parameter IN ('command_to_process') DO command

Key

options:

usebackq Use the alternate quoting style:

  • Use double quotes for long file names in "filenameset".
  • Use single quotes for 'Text string to process'
  • Use back quotes for command_to_process

Fonte para / f

Caractere de escape

^ Escape character.

Adicionando o caractere de escape antes que um símbolo de comando permita que seja tratado como texto comum.

Ao direcionar ou redirecionar qualquer um desses caracteres & , \ , < , > , ^ ou | , você deve prefixá-los com o caractere de escape.

Por exemplo, ^\ ^& ^| ^> ^< ^^

Sintaxe de origem

Leitura Adicional

por 07.10.2015 / 17:49