我最近读到cmd.exe
以/u
标志开头会导致它以 unicode 格式输出到文件,但是我将如何启动这样的批处理文件?澄清一下,我并不是说从已经运行的批处理文件中启动其他批处理文件,我的意思是单击一个批处理文件,它会自动运行/u
? 由于使用 /u 启动批处理文件的目的是以 unicode 输出文件,因此我正在寻找一种方法来在代码中执行此操作或始终使用标志启动批处理文件,这是不可能的。另一种解决方案可能是您是否可以检测 /u 是否在代码中打开,在这种情况下,如果它关闭,我只能做start /u this.bat
吗?
问问题
7106 次
2 回答
3
怎么样
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 避免了这种循环。第二次运行检测到该参数(必须是第一个)并将其删除(移位)。只需将此“标题”(直到 rem 行)添加到您的批处理中。
于 2013-03-24T07:37:26.840 回答
1
如果要修改所有批处理文件的运行方式,则需要修改 windows 注册表。
将值更改为键 HKEY_CLASSES_ROOT\batfile\shell\open\command(Default) 从
"%1" %*
到
"cmd /U /C %1" %*
于 2013-03-24T02:23:55.953 回答