è possibile rinominare in batch da una lista, usando un file bat come rinominare filename.txt newfilename.txt?

1

Quindi insegno a una classe e alcuni dei miei studenti hanno Mac. Letteralmente l'unica cosa che ho incontrato è questo problema .bat.

Usiamo Excel per iniziare con un elenco di nomi di file in una colonna e un elenco di nuovi nomi di file nell'altra colonna, quindi creare un file bat. I nuovi nomi non sono intuitivi e non seguono uno schema, quindi la logica tipica non può gestirlo; dobbiamo fare affidamento sulla lista.

I Mac hanno qualcosa che può funzionare? Mi piacerebbe fornire una soluzione.

Ecco come appare in windows (questo presuppone che tutti i file si trovino nella stessa cartella, e il file bat sia eseguito dalla root, è possibile utilizzare fullpaths)

rename accounting2016.xls ID0001.xls
rename vacationphoto01.jpg ID0042.jpg
rename BuildingPlans.docx ID0189.docx
    
posta jqning 05.10.2016 - 17:04
fonte

2 risposte

1

Gli strumenti da riga di comando di Unix sono ciò che desideri e tu o gli utenti Mac del tuo gruppo dovreste svolgere alcuni tutorial di base su questo. Viene spesso chiamato programmazione della shell.

Il comando che vuoi qui è mv (abbreviazione di move) Lo script di shell che genereresti (equivalente al file batch) includerebbe

mv accounting2016.xls ID0001.xls
mv vacationphoto01.jpg ID0042.jpg
mv BuildingPlans.docx ID0189.docx

Nota che questa è una corrispondenza esatta finché non usi i jolly. I caratteri jolly vengono trattati in modo diverso nei file di comando di Windows e nelle shell Unix. Ci sono alcune cose che puoi fare solo con la prima. Questo perché l'espansione dei caratteri jolly viene eseguita dal comando rinomina in Windows e dalla shell in Unix

    
risposta data 05.10.2016 - 17:32
fonte
0

Se leggo correttamente la domanda, stai generando il file batch da una sorta di processo di esportazione dalle colonne di Excel contenenti il comando e due nomi di file?

In tal caso puoi semplicemente cambiare il comando rename in "Mac equivalente" mv . Il file ora contiene

mv accounting2016.xls ID0001.xls
mv vacationphoto01.jpg ID0042.jpg
mv BuildingPlans.docx ID0189.docx

Quindi puoi eseguire i comandi elencati nel file con ad es. Bash:

bash renames.txt

Nota che se i nomi dei file contengono spazi bianchi o altri caratteri speciali dovresti circondarli di virgolette, ma penso che sia il caso anche in Windows.

    
risposta data 05.10.2016 - 17:31
fonte

Leggi altre domande sui tag