Articles of shell

Windows批处理脚本从文件名删除括号中的文本?

我在一个文件夹中有一堆文件,我想通过一个.bat或.vbs脚本(或类似的)复制和重命名。 这些文件被命名为: ABC-DE-(XXX)SomeNameHere.dat 我想复制这些文件并重命名它们,删除(XXX)部分,只留下: ABC-DE-SomeNameHere.dat 有一种类似的问题在这里回答,但我不能修改它为上述文件名模式工作,也只是重命名文件,不复制它们。 任何帮助深表感谢! 非常感谢。 编辑:张贴( 可怕的! )下面的代码。 可能最好忽略这个; _; @ECHO OFF FOR %%F IN ("ABC-DE-(*)*.dat") DO CALL :process "%%F" GOTO :EOF :process SET oldname=%1 SET "newname=%~nx1" SET "newname=%newname:*] =%" RENAME %oldname% "%newname%"

如果显示>符号,我怎样才能恢复我在terminal上的最后一个select?

我会很高兴,如果有人可以修改标题更合适,因为我是相当新的terminal。 我有一个terminal问题。 一旦我执行一个命令,如果它进入下一行,我不能closures它或恢复它。 我假定它启动可执行文件或使用>来请求更多的参数 例如: //Windows Machine vagrant up //Vagrant Instance Unix Machine $ git > > > > … it goes on like this, I can't close > so I can't execute other commands 唯一的解决scheme是重新启动terminal(这意味着我需要重新启动Vagrant实例) 它只发生在一些命令 – 不是全部,所以我不知道是什么造成了不同。 例如,执行composer ,我得到关于composer php的信息和terminal回到主要状态。 但是,如果我执行像php , git , mysql这样的东西, >符号出现,我不能从那里返回。 那么,两个基本的问题; 这是什么原因? 我怎样才能终止当前的命令返回主状态? 任何帮助将不胜感激。 PS。 我同时使用Windowsterminal和Unixterminal,这个问题都发生在两个。

使用脚本将文件从UNIX复制到Windows

我想编写一个脚本来自动执行我每天手动执行的任务。 这个任务需要我使用WinSCP从UNIX服务器(Solaris)下载一些文件到我的桌面(Windows XP)。 有什么办法将文件从UNIX服务器的path复制/移动到我的Windows XP PC中使用Python或shell脚本的path?

git在Windows上:致命的:协议错误:坏行字符:@ –

我在Windows上使用SourceTree + Git没有任何问题。 我能够从命令(terminal/ BASH)使用git命令。 我更喜欢用git推/拉等terminal。不幸的是,重新安装我的机器(服务器/ git是相同的)后,我得到这个痛苦的错误。 在新机器上,我安装了Git 1.9.5(Git-1.9.5-preview20141217.exe),并configuration为只使用BASH,并使用正确的SSH密钥文件进行plink。 我可以做git log我的仓库,但是git pull或者git push会给出这个错误: me@NEW-MACHINE /c/Workspace/project (master) $ git pull fatal: protocol error: bad line length character: @- ERROR: Problem parsing the command line arguments. 当然,我search了很多关于“致命的:协议错误:坏行长度”的文章。 但是,找不到任何线索。 有趣的是,在SourceTree上,我可以做成git pull或push 。 我只在BASHterminal得到这个错误。 请注意,SourceTree不使用embedded式的git。 以下是我的调查到目前为止: 我安装了旧版本的git(1.8.x),仍然出现错误。 移动.bashrc,但不好。 显然,SourceTree并不像SourceTree那样使用embedded式Git。 服务器在Github(企业,私人)。 我在使用相同的git存储库/服务器的Linux上使用任何git命令没有问题。 我的线索是从错误消息中的<newline>@-<newline> 。 这更像是一个Windows / BASH特定问题。 我不知道是什么原因导致“@ – ”。 […]

不能在bash中的双括号中执行命令

为了保持一致,我试图在所有if语句中使用双括号[[]]。 但是当我要检查我想运行的命令的返回值时,我确实遇到了一个问题。 在testing几种创buildif语句的方法之后,我发现只有没有括号才能执行命令。 以下不起作用: if [[ $command ]] ; then echo "something" fi if [[ $(command) ]] ; then echo "something" fi if [[ ${command} ]] ; then echo "something" fi 上面的代码使if循环成为真,即使命令没有运行。 因为上面的代码不能使用大括号它不能使用这个: [[ $command ]] || echo "failed" 而且它不能在子shell中工作。 以下工作: if $command ; then echo "something" fi if $(command) ; then echo "something" fi […]

如何从Unixterminal的任何path运行.sh脚本?

我知道如何运行我创build的脚本。 但是,我需要通过terminal改变目录并运行我的脚本,这是一个痛苦的问题。 我需要运行到桌面的slowloris脚本,现在改变目录到桌面并运行。 然后我有另一个根; 现在将目录更改为root并运行该目录。 我的问题是: 如何通过从任何pathinput./script来运行任何shell脚本,就像我们从任何path启动Metasploit一样,通过从任何path给予msfconsole 。

如何传递存储在单个variables中的引号的命令行参数?

我想从shell脚本调用外部应用程序,但是这个shell脚本从一个variables中获取参数(来自其他脚本)。 一切都还好,直到我不必为单个参数使用双引号,而是用空格隔开单词。 这里是我的问题的简化例子(sh_param只是打印所有传递的参数): #!/bin/sh pass() { echo "Result with \$@" ./sh_param $@ echo "Result with \"\$@\"" ./sh_param "$@" echo "Result with \$*" ./sh_param $* echo "Result with \"\$*\"" ./sh_param "$*" } pass '"single param" separate params' 和结果(sh_param只是打印所有传递的参数): Result with $@ Param: "single Param: param" Param: separate Param: params Result with "$@" Param: "single param" separate […]

如何在shell脚本中获取ec2-describe-instances的标签

我想从命令ec2-describe-instances的结果中提取实例ID和标记,并且想要将结果存储在文本文件中。 结果集给出: 但是我想要标签所有者和cost.centre也被提取kindly指导我如何做到这一点

自动运行多个compass-sass监视操作

我正在尝试确定指南针(sass)同时观看多个目录的最佳方法。 每个目录代表一个个人客户和他们的网站。 /var/www/customers/domain1.com /var/www/customers/domain2.com /var/www/customers/domain3.com 我已经了解到每个watch命令可能需要单个进程,每当添加/删除/移动文件夹时,自动运行和停止这些命令的最佳做法是什么?

为什么我们不能通过Linux中的system()系统调用来更改目录?

system ("cd .."); 这不会产生任何错误,但也没有任何意义。 为什么?