WindowsBatch与LinuxShell比较[变量值来自文件或命令]

本文介绍了在Windows Batch和Linux Shell脚本中如何从文件或命令获取变量值的方法。包括了使用set命令的不同方式,以及如何在for循环中直接执行命令获取其输出作为变量值。此外还展示了如何通过临时文件传递命令结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一 Windows Batch

1) 如果变量的值来自文件,则必须类似set /p num=<num.txt 。
2)如果变量的值想来自命令的结果,则一些命令可以使用%%,例如set bbb=%time%,set aaa=%date%。对于一般的命令只能先输出到临时文件,然后再读入,例如time /t > ddd.txt set /p ddd=<ddd.txt。
3) 在for中可以使用命令,例如·time /t·。

实例:

@echo off

echo get the value from one txt file
rem the num.txt file only contains one line "001".

echo work well
set /p num=<num.txt
echo %num%

echo doesn't work
set num=<num.txt
echo %num%
type num.txt | set num=
echo %num%
type num.txt | set /p num=
echo %num%
set num=(`print num.txt`)
echo %num%

echo get value from command
echo some command work well, such as %time%, %date
set bbb=%time
echo %bbb%
set aaa=%date%
echo %aaa%

echo general command doesn't work
set ccc=('time /t')
echo %ccc%

echo one solution is to output the result to txt and then input it
time /> ddd.txt
set /p ddd=<ddd.txt
echo %ddd%

echo specially,in for clause, ('time /t') is as one command.
echo and if also use setlocal enabledelayedexpansion, the way also can implement get value from command.
setlocal enabledelayedexpansion
for /f %%i in ('time /t') do (
    
echo %%i
    
set ti=%%i
    
echo !ti!
)

pause

二 Linux Shell

1)超级简单,只需要使用·command parameters·。

 实例:

#!/bin/sh

ddd
=`cat ./ddd.txt`
echo $ddd

d
=`date`
echo $d

 

 完!

 

 


 

 

 

 

 

### Windows Shell 命令概述 Windows操作系统中的Shell命令提供了强大的工具集,用于执行多种任务和管理计算机系统[^1]。这些命令不仅适用于日常操作,也是系统管理员的重要资源。 ### 基础命令及其功能 #### 文件目录操作 - **`cd` (Change Directory)** 更改当前工作目录。例如 `cd C:\Users\Username\Desktop` 可以切换到桌面文件夹。 - **`dir`** 列出指定路径下的文件和子目录信息。类似于Linux中的`ls`命令,在PowerShell中也可以直接使用`ls`作为替代[^4]。 - **`mkdir` 者 `md` (Make Directory)** 创建新的目录结构。比如创建名为TestFolder的新文件夹可以用 `mkdir TestFolder`。 - **`rmdir` 者 `rd` (Remove Directory)** 删除空的目录。如果要删除非空目录,则需加上参数 `/s /q` 如 `rmdir /s /q path_to_folder` - **`copy` 和 `xcopy`** 复制文件整个树形结构的数据。其中`xcopy`支持更多选项,适合复杂场景下批量复制文件。 - **`move`** 移动文件重命名文件/文件夹。 - **`del` `erase`** 删除一个多个文件。 #### 系统状态查询 - **`ipconfig`** 显示所有网络适配器配置详情,包括IP地址分配情况等重要信息。 - **`tracert`** 跟踪数据包到达目标主机所经过的路由节点,并显示每一跳的时间延迟状况。这有助于诊断网络连接问题[^5]。 - **`systeminfo`** 获取有关本地计算机上的软件环境和硬件设置的信息汇总报告。 - **`tasklist`** 查看正在运行的任务和服务进程列表。 - **`netstat`** 展示活动TCP/IP连接统计表单,连同端口号、协议类型等相关细节。 #### 用户交互及其他实用程序 - **`echo`** 输出字符串至屏幕;常用来测试批处理脚本内的变量值是否正确赋值。 - **`pause`** 暂停命令提示符窗口直到用户按键继续。 - **`cls`** 清屏指令,清除屏幕上之前的内容以便于阅读新输入的结果。 - **`exit`** 关闭Command Prompt实例退出回到初始界面。 对于希望进一步探索高级特性的读者来说,掌握上述基础之后还可以尝试编写简单的批处理(.bat/.cmd)文件是深入研究Powershell语法特性来实现自动化运维目的[^2]。 ```batch @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION FOR %%i IN (*.txt) DO ( ECHO Processing file %%~ni... REM 这里放置针对每个.txt文件的具体操作逻辑 ) ENDLOCAL PAUSE ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值