我最近读到,使用cmd.exe
标志启动/u
会导致它以unicode格式输出到文件,但是如何启动这样的批处理文件?为了澄清,我并不是说从已经运行的批处理文件中启动其他批处理文件,我的意思是单击批处理文件并自动运行/u
?由于使用/ u启动批处理文件的目的是以unicode输出文件,我正在寻找一种方法来在代码中执行此操作或始终使用标志启动批处理文件,这是不可能的。另一个解决方案可能是你可以检测代码中是否有/ u,在这种情况下,如果它是关闭的,我可以start /u this.bat
吗?
答案 0 :(得分:1)
如果要修改所有批处理文件的运行方式,则需要修改Windows注册表。
将值更改为键HKEY_CLASSES_ROOT \ batfile \ shell \ open \ command(默认值)
"%1" %*
到
"cmd /U /C %1" %*
答案 1 :(得分:1)
怎么样
start "UNICODE" cmd /u
将该行放入批处理文件并将链接(甚至该批处理本身)添加到桌面。然后,您可以双击启动它。
编辑在与我的狗散步后,我认为这对你没有帮助 但也许这个有帮助:
if "%1" == "/unicode" goto begin
start "Unicode-Window" cmd /u /k "%~dpf0 /unicode %1 %2 %3 %4 %5 %6 %7 %8 %9"
exit
:begin
shift
rem start of my batchfilever
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
这个想法是:我不知道,如果这个窗口是/ u开头,但我不在乎。 我只是在一个新窗口中启动相同的文件(%~dpf0),该窗口以/ u开头并关闭当前窗口。当然这意味着一个无限循环,我用附加参数/ unicode避免了这个循环。 第二次运行检测该参数(必须是第一个)并删除它(shift)。 只需将此“标题”(直到rem-line)添加到批处理中。