Ho bisogno di copiare più file in un singolo file batch. I file hanno nomi Unicode che si associano a diverse codepage.batch di Windows: parametri Unicode per il comando di copia (robo)
Esempio:
set ArabicFile=ڊڌڵڲڛشس
set CyrillicFile=щЖЛдЉи
set GermanFile=Bücher
copy %ArabicFile% SomePlaceElse
copy %CyrillicFile% SomePlaceElse
copy %GermanFile% SomePlaceElse
Problema: file batch non può essere Unicode.
Domanda: Come posso scrivere i nomi dei file Unicode nel file batch in modo che il comando di copia li riconosca?
Note:
non mi interessa come vengono visualizzati i nomi dei file.
In realtà il file batch fa molto di più che copiare semplicemente questi file, ho solo semplificato la descrizione per chiarire il problema.
Corretto file batch:
Con la risposta di Arnout ho modificato il mio file batch come segue. Ora funziona correttamente senza richiedere un cambio di font (che sarebbe disordinato, come ha commentato Arnout).
@echo off
chcp 65001
set ArabicFolder=ڊڌڵڲڛشس
set CyrillicFolder=щЖЛдЉи
set GermanFolder=Bücher
robocopy /e d:\temp\test\%ArabicFolder% d:\temp\test2\%ArabicFolder% /log:copy.log
robocopy /e d:\temp\test\%CyrillicFolder% d:\temp\test2\%CyrillicFolder% /log+:copy.log
robocopy /e d:\temp\test\%GermanFolder% d:\temp\test2\%GermanFolder% /log+:copy.log
La modifica del carattere * può * essere necessaria se si intende utilizzare l'output del comando che può contenere Unicode;) – Joey
Umm, sì, questo è ciò che intendevo con "purché non si scriva output non ASCII alla console" ... – Arnout
Fantastico, funziona ;-) Solo gotcha: come si imposta il carattere da un file batch? Il file batch deve essere eseguito su più computer e non posso riconfigurarli prima di eseguire il mio script. E la modifica del carattere è necessaria - se non cambio il carattere, i comandi impostati falliscono. –