草庐IT

Bash$编码$Shell

全部标签

windows - 如何将 perl 脚本中设置的环境变量导出到批处理 shell?

我正在使用批处理脚本在Windows上执行perl脚本。我在批处理脚本中设置以下变量:SETPATH_VAR=C:\Users\我可以在perl中访问PATH_VAR,如下所示:my$path1=$ENV{'PATH_VAR'}我还想将perl中设置的环境变量导出到批处理。就像我现在所做的相反。有办法吗?附言:我试过这个,但它不起作用:$ENV{'PATH_Z'}="HelloWorld"; 最佳答案 对环境变量的更改不会影响父进程,这是它们工作方式的一部分,因此您在Perl脚本中所做的任何事情都不会更改批处理脚本的环境变量。但是,

windows - 如何在 Windows 批处理脚本中更改重定向文件的文件编码?

我将以下Windows批处理命令作为较大批处理文件的一部分:type*.sql>dbScript.txtrendbScript.txtdbScript.sql如您所见,它将特定目录中的所有SQL脚本合并为一个,以便它可以在数据库构建过程中执行。我的问题是我现在在一个SQL脚本文件中有非ANSI字符,但dbScript.txt(以及随后的dbScript.sql)被编码为ANSI。如何将输出文件的编码更改为UTF-8? 最佳答案 你必须运行类似iconv的程序转换您的输出文件。cmd仅支持OEM代码页(默认情况下)或UTF-16(使用

c# - 如何将项目添加到 Windows Shell(右键单击)?

我将制作一个将在后台运行的桌面应用程序,这意味着没有可见窗口,并且我希望在用户右键单击文件时出现一个名为“上传文本”的选项。有人能指出我正确的方向吗?我还必须确保,如果有人想在任何时候卸载该程序,shell修改也将被彻底消除。该应用程序将运行WindowsXP、WindowsVista和Windows7。这些操作系统在处理我的shell困境方面有何不同? 最佳答案 这是一个shell扩展。你已经用C#标签标记了这个问题;你应该知道writingshellextensionsinamanagedlanguageisstronglydi

c++ - Shell Extension DLL - 如果用户在文件夹空白区域内单击,如何捕获文件夹路径?

使用shell扩展dll,如果用户在文件夹空白区域内单击,如何捕获文件夹路径? 最佳答案 如果你正在实现一个shell扩展dll,那么你会在你的IShellExtInit::Initialize(中得到路径)方法作为pidlFolder参数。为确保您的扩展也注册了文件夹背景,您还必须在HKCR\Directory\Background\shellex\ContextMenuHandlers下创建适当的条目 关于c++-ShellExtensionDLL-如果用户在文件夹空白区域内单击,如

windows - cmd.exe 启动时使用什么编码/代码页?

之前问过一个几乎相同的问题。回复中很好的解释了codepages,但是没有回答我心中的疑问:cmd.exe启动时使用的codepage由什么控制?在我的系统上,它以某种方式被改变了。在注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage中,有一项OEMCP设置为437。这似乎是重新启动后cmd.exe使用的CP(如chcp所示),但是后来有些东西改变了它,它在新的cmd.exe窗口中变成了1252。如果我用chcp将它更改为437,那只会影响当前的cmd.exe。当我退出并重新启动cmd.exe时,ch

windows - 将 git describe 设置为 shell 变量

我想根据gitdescribe命令的输出创建一个目录。这不有效:setNAME=gitdescribemkdir%NAME%我该怎么办? 最佳答案 在Windows中,要捕获命令的输出,您可以使用FOR/F命令。阅读HELPFOR然后试试这个FOR/F%ain('gitdescribe')domd%a 关于windows-将gitdescribe设置为shell变量,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

windows - 编码([DrSNX][Мι¢ŕôśőƒŧ ₤ĐС Сзŏţǿćǿł Ðѓїνєґ !!!!!!!!])这是什么?

我有一个包含以下信息的XML它来自一台运行Windows6.3内核预览版的机器,但我不知道这是什么类型的编码,它非常易读,但我完全不知道一些源自Windows的代码最终会变成这样?有谁知道这是什么? 最佳答案 这是一个pseudo-localized文本,自动生成以测试软件是否正确显示非ASCII字符,同时仍保持英语使用者可读。显然,Windows的一些测试版已经releasedwithpseudo-localizedcomponents,可能是偶然的。 关于windows-编码([Dr

windows - 粘贴文本的 Emacs 编码

我在Windows8上(偶尔)使用emacs24.3,在粘贴文本时遇到编码问题,非ascii字符被替换为它们的\uucode.我的emacs编码默认是utf-8我试图快速浏览一下apropos帮助,但没有任何内容与我使用的关键字匹配。要配置的变量是什么?对于windows操作系统,系统编码的值是什么? 最佳答案 经过一些digging,方向来自lawlistlink我选择了(set-clipboard-coding-system'utf-16le-dos) 关于windows-粘贴文本的

windows - Windows cmd 脚本中等效的 bash 正则表达式命令

这个bash命令的等价物是什么:[[$(uname)=~NT-6.3]]&&set_win81在Windowscmd脚本中?我想使用类似的东西:if(ver|findstr/C:"MicrosoftWindows[Version6.3")(goto:set_win81) 最佳答案 这样的东西就足够了。ver|findstr/i/c:"Version6.3">nul&&goto:set_win81这是我为这个任务保存的一些代码:@echooffset"windows="VER|find"4.1.">nul&&setwindows=W9

linux - 如何从 bash 获取 telnet 命令的输出?

我试图从Linux获取在我的Windows机器上运行的进程列表,但是当我在脚本中执行此操作时,我没有获得任何输出。如果我手动使用telnet并使用命令pslist,我会得到完整的进程列表,但不在我的脚本中。这是bash脚本(减去变量):(echoopen${host}sleep1echo${user}sleep3echo${pass}sleep1echopslistsleep2)|telnet我只是用bashpslist.sh调用它,输出是这样的:telnet>Tryingip_address...Connectedtoip_address.Escapecharacteris'^]'.