我有一个小脚本,在Windows上为我正在管理的Bazaar存储库执行构建和安装过程.我试图运行与提升,管理权限的脚本中的Windows外壳程序(CMD.EXE) -就好像我右键单击它并选择以管理员身份运行,但不使用,需要使用的任何方法图形界面.
我想从shell浏览Windows资源管理器中的文件夹.我知道很多人一直在从文件夹中向Cmd询问.
我想做相反的事情并打开一个位于当前浏览目录的新窗口.
首先,我将Windows CMD编码更改为utf-8并运行Python解释器:
chcp 65001
python
Run Code Online (Sandbox Code Playgroud)
然后我尝试在其中打印一个unicode sting,当我这样做时,Python以一种特殊的方式崩溃(我只是在同一个窗口中得到一个cmd提示符).
>>> import sys
>>> print u'ëèæîð'.encode(sys.stdin.encoding)
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会发生以及如何使它工作?
UPD:sys.stdin.encoding退货'cp65001'
UPD2:我刚才发现这个问题可能与utf-8使用多字节字符集这一事实有关(kcwu就此提出了一个很好的观点).我尝试使用'windows-1250'运行整个示例并得到'ëea?'.Windows-1250使用单字符集,因此它适用于它理解的字符.但是我仍然不知道如何让'utf-8'在这里工作.
UPD3:哦,我发现它是一个已知的Python bug.我想会发生的事情是Python将cmd编码复制为'cp65001到sys.stdin.encoding并尝试将其应用于所有输入.由于它无法理解'cp65001',因此它会在包含非ascii字符的任何输入上崩溃.
我想打电话
cmd /c "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" mysolution.sln /build "release|win32"
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,因为我收到错误:'C:\ Program'不被识别为内部或外部命令,可操作程序或批处理文件.
据我所知,我需要引用|的空格和引号,但我只允许使用引号一次.
任何想法如何引用此命令行正确调用?
在标准的Windows .cmd文件中,我只需执行以下操作即可向stdout发送消息:
echo message
Run Code Online (Sandbox Code Playgroud)
如何向stderr发送消息?
示例:
假设我的脚本parent.cmd包含:
call child.cmd 1>>stdout.log 2>>stderr.log
Run Code Online (Sandbox Code Playgroud)
和一个孩子包含:
:: Writes a message to stdout
:: (which in the parent is piped to stdout.log)
echo message
:: Now I want to write a message to stderr
:: (which in the parent is piped to stderr.log)
???
Run Code Online (Sandbox Code Playgroud) 我一直在寻找一种使用.cmd文件设置环境路径变量的方法.
当路径变量变得太长时,我遇到了一些错误.
只需将所需的变量添加到下面的"设置路径变量"中
检查路径变量的当前值并添加到
脚本以管理员身份运行脚本!
打开一个新的控制台窗口,它应该工作,例如php -v
我想处理包含奇怪字符的文件名,比如法语é.
shell中的一切都运行良好:
C:\somedir\>ren -hélice hélice
Run Code Online (Sandbox Code Playgroud)
我知道如果我把这行放在.bat文件中,我得到以下结果:
C:\somedir\>ren -hÚlice hÚlice
Run Code Online (Sandbox Code Playgroud)
看?é已被Ú取代.
命令输出也是如此.如果我dir在shell中有一些目录,输出就可以了.如果我将此输出重定向到文件,则会转换某些字符.
那么我怎么能告诉cmd.exe如何解释我的批处理文件中出现的é,实际上是é而不是Ú或逗号?
因此,执行.bat文件时无法提供有关其编写代码页的提示?
Git GUI,Git Bash和Git CMD有什么区别?我是初学者,为了完成我的安装,我通常会发现自己同时使用git bash和git CMD
我想计算文本文件中的行数,然后将值存储到环境变量中.计算行数的命令是
findstr /R /N "^" file.txt | find /C ":"
我提到了如何使用bat脚本将命令表达式的结果存储在变量中的问题? 然后我试过,
set cmd="findstr /R /N "^" file.txt | find /C ":" "
我收到错误消息,
FIND: Parameter format not correct
我怎么能摆脱这个错误.
如何删除某些字符或通过某些批处理文件执行将某些字符替换为其他字符,对于一次性Windows文件夹中的所有文件的文件名,是否有DOS命令?
cmd ×10
batch-file ×5
windows ×5
encoding ×2
windows-7 ×2
bash ×1
environment ×1
file ×1
git ×1
git-bash ×1
path ×1
powershell ×1
python ×1
shell ×1
unicode ×1