如何利用批处理,历遍所有子文件夹里文件,把.csv文件全部转化为.xls文件,并删除原.xls文件?

2024-11-10 22:45:36
推荐回答(3个)
回答1:

不清楚你的实际文件,仅以问题中的说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行

/*&cls
@echo off
rem 将csv文件转换成xls/xlsx文件
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
dir /a-d/b/s *.csv|cscript -nologo -e:jscript "%~f0"
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/

var fso=new ActiveXObject('Scripting.FileSystemObject');
var excel=null;
try{
    excel=new ActiveXObject('Excel.Application');
    excel.DisplayAlerts=0;
}catch(e){
    WSH.echo(e.message);
    WSH.echo('Microsoft Excel not installed');
    WSH.Quit();
}

while(!WSH.StdIn.AtEndOfStream){
    var line=WSH.StdIn.ReadLine();
    WSH.echo(line);
    var file=fso.GetFile(line);
    var xlsFile=file.Path.replace(/\.csv$/i,'.xls');
    var book=excel.Workbooks.Open(file.Path);
    book.SaveAs(xlsFile , 56);
    book.Close();
}

excel.Quit();

回答2:

乱码的原因是csv文件编码的问题。用notepad打开csv文件,然后 另存为 时选择其他编码格式就行,一般选择ANSI即可,如果已经是ANSI编码,就选择UTF8编码。改完编码后再改后缀名就没问题了

回答3:

你出现乱码是bat的问题,你保存的应该是unicode吧,换成ansi,还有不要尝试直接复制百度知道的代码行

1 msgbox"hello"
2 msgbox"world"
这样格式的乱码无疑,那么怎么可以不乱码呢?
保存ansi,把问号删除,源回答啥排版就啥排版