我正在编写一个 bat 脚本,在其中调用一个程序(例如 javac)。为简单起见,我想在运行之前检查该命令是否存在。即如果命令存在于 PATH 中。
例如,
if (my_command.exe is a recognized command) then (
my_command.exe my_args
) else (
REM Output was probably "'my_command.exe' is not recognized as an internal or external command, operable program or batch file."
REM Do not run my_command.exe
)
Run Code Online (Sandbox Code Playgroud)
在 Windows 中执行此操作的最佳方法是什么?
我有一个 wifi 连接,一旦建立无线链接,就需要使用网络表单进行身份验证。我知道如何使用使用curl/ curlIE的脚本自动进行身份验证。
但是,我如何在每次连接到特定网络连接时要求 Windows 调用我的脚本?
我也有兴趣在我的脚本的命令行上接收无线配置文件的名称或 ESSID。
我有一组存储库根据它们的 VCS(Git、Mercurial、SVN)分类到目录中。使用 Subversion 我能够svn update *在父目录中运行,它会遍历每个目录并按预期更新每个存储库。对于 Git 或 Mercurial 而言,情况并非如此。
我想拿出一个bash脚本,我可以运行通过目录和要么做到这些,循环git pull或hg pull在每个。我只是没有太多的 bash 脚本经验。
我需要从(本地)Windows 命令外壳在远程 Unix 机器上运行(Tcl 或其他)脚本,并且我希望脚本的 stdout/stderr 显示在 Windows CLI 中。退出代码也很有用。
这可以使用 ssh (putty) 吗?还是通过其他方式?
谢谢!
我想生成一个 1 GB 的随机文件,所以我使用了以下命令。
dd if=/dev/urandom of=output bs=1G count=1
Run Code Online (Sandbox Code Playgroud)
但是每次我启动这个命令时,我都会得到一个 32 MB 的文件:
<11:58:40>$ dd if=/dev/urandom of=output bs=1G count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0,288321 s, 116 MB/s
Run Code Online (Sandbox Code Playgroud)
怎么了?
编辑:
感谢本主题中的出色答案,我提供了读取 32 个 32 MB 大块的解决方案,这使得 1GB:
dd if=/dev/urandom of=output bs=32M count=32
Run Code Online (Sandbox Code Playgroud)
给出了其他解决方案,将 1 GB 直接读取到内存,然后写入磁盘。此解决方案需要大量内存,因此不推荐使用:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
Run Code Online (Sandbox Code Playgroud) 我有一个交互式 shell 脚本,在一个地方需要 ssh 到另一台机器(基于 Ubuntu)并以 root 身份执行一些东西(用户应该输入他的密码,但远程命令应该像脚本中提到的那样运行):
# ...
ssh remote-machine 'sudo ls'
# ...
Run Code Online (Sandbox Code Playgroud)
但是,我总是收到此错误消息:
sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)
好的,这很清楚。但是我怎样才能规避这一点呢?应该发生这样的事情:
$ ssh remote-machine 'sudo ls /'
[sudo] password for user1:
/bin
/etc
/var
Run Code Online (Sandbox Code Playgroud) for /r %f in (*) do echo %f
Run Code Online (Sandbox Code Playgroud)
给出输出文件名以及整个路径
\path\to\dir\<filename>
Run Code Online (Sandbox Code Playgroud)
我如何获得<filename>不包含路径的路径?我需要使用那个“文件名”字符串。
另外,一旦获得文件名,是否可以执行以下操作?
for /r %%f in (*) do (
echo "blah blah blah 'filename'" >> blahblah_filename.txt
)
Run Code Online (Sandbox Code Playgroud) 我正在使用 linux 'script' 命令 http://www.linuxcommand.org/man_pages/script1.html来跟踪一些交互式会话。输出文件包含不可打印的字符,包括我的退格键。
有没有办法整理这些输出文件,以便它们只包含屏幕上显示的内容?
或者是否有另一种方法来记录交互式 shell 会话(输入和输出)?
%*批处理文件中是否意味着所有命令行参数?
script ×10
windows ×5
batch ×3
command-line ×3
linux ×3
bash ×1
dd ×1
hook ×1
networking ×1
redirection ×1
remote ×1
shell ×1
ssh ×1
sudo ×1
wildcards ×1