File batch di Windows per sostituire un singolo carattere nei nomi di file di Windows [duplicato]


0

Ho una directory che consiste di molti file come di seguito. Ma il mio requisito è cambiare solo i nomi dei file .CSV.

Nome della directory: c: \ files \

bac.accdb
KFBAROPN.SAVEFILE.CSV
KFBARTRD.SAVEFILE.CSV

Devo rimuovere il "." (Punto) e sostituirlo con hypen (-). Potete per favore fornirmi un file di script batch di Windows (ad esempio: abc.bat) e anche farmi sapere come pianificare l'esecuzione di questo file in Windows?

Sono molto nuovo di Windows Script e il tuo aiuto è molto apprezzato.


3
Deve davvero essere batch? PowerShell è davvero lo standard su Windows ora ed è la strada migliore per leggibilità, sostenibilità ed è più facile da imparare.
Austin T, francese,

Ok. Non sapevo nulla della shell di Windows o di Powershell. Potete per favore fatemi sapere anche come eseguire e programmare lo script PowerShell. Per favore, aiutami con la sceneggiatura. Lo proverò. Molte grazie VJ
user225817,

@ user225817 - Fai qualche ricerca e torna indietro e aggiorna la tua domanda ..
Ramhound

Risposte:


1

prova questo (cmd shell):

for /f "tokens=1*delims=." %i in ('dir /a-d/b *.*.csv') do @ren "%~i.%~j" "%~i-%~j"

.. e per l'uso in uno script batch:

for /f "tokens=1*delims=." %%i in ('dir /a-d/b *.*.csv') do ren "%%~i.%%~j" "%%~i-%%~j"

Ciao, ho inserito 4 file nella directory Test. 1. J.BODPOS.20130516.CSV 2. J.BODTRADES.20130516.CSV 3. KFBAROPN.SAVEFILE.CSV 4. KFBARTRD.SAVEFILE.CSV. Creato uno script batch filen.bat, con il codice all'interno come / f "tokens = 1 * delims =." %% i in ('C: \ test / ad / b . .CSV') fa ren "%% ~ i. %% ~ j" "%% ~ i - %% ~ j" e quando corro ricevendo l'errore come "C: \ test> filen.bat 'filen.bat' non è riconosciuto come comando interno o esterno, programma eseguibile o file batch."
user225817

Ciao, ho provato questo dal prompt di cmd e ho ricevuto un errore. Potete per favore aiutarmi su questo. --- per / f "token = 1 * delims =." %% i in ('C: \ Documents and Settings \ v \ ACCESS RECS \ test \ / ad / b . .csv') do @ren "%% ~ i. %% ~ j" "%% ~ i-% % ~ j "
user225817

Il messaggio di errore è "%% ero imprevisto in questo momento."
user225817

sul prompt cmd le variabili del ciclo for ne ottengono solo una %, ad es. %i !
Endoro,

Endoro. Cosa devo mettere al posto di "dir" nella riga di script che hai fornito?
user225817
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.