脚本笔记【持续更】

传参

cmd

在cmd中,传参数给脚本可以通过在命令行中的脚本名称后添加参数来实现。例如,如果脚本名称为myscript.bat,那么可以使用以下命令传递参数:

myscript.bat arg1 arg2 arg3

脚本可以通过%1%2%3 等参数变量来获取传递的参数值,例如可以在脚本中使用以下代码来获取传递的第一个参数:

echo %1

python

Python 可以通过命令行参数传递参数给脚本。可以使用 sys.argv 获取命令行参数的列表。

示例如下:

import sys

print('命令行参数:', sys.argv)

假设将上面的代码保存为 test.py,那么可以通过下面的命令行执行此脚本并传递参数:

$ python3 test.py hello world

程序的输出将是:

命令行参数: ['test.py', 'hello', 'world']

其中第一个参数 test.py 是脚本文件名,后面的 'hello''world' 是传递的参数。可以通过 sys.argv[1:]获取后面的参数列表,也可以通过具体的索引获取某个参数。

powershell

使用 $args 变量来传递参数给脚本。

例如,以下是一个简单的 PowerShell 脚本,它将两个数相加并显示结果:

# Add.ps1
$sum = $args[0] + $args[1]
Write-Host "The sum of $args[0] and $args[1] is $sum."

你可以使用以下命令行来调用这个脚本并传递两个参数:

powershell -ExecutionPolicy RemoteSigned -File .\Add.ps1 2 3

输出将会是:

The sum of 2 and 3 is 5.

其中 $args[0]$args[1] 分别代表第一个和第二个参数。对于更多参数,可以使用 $args[2]$args[3],以此类推。如果要传递命名参数,可以使用 $args 数组的索引来获取参数的值,或者直接使用参数名称。例如:

# Greet.ps1
param(
    $name,
    $message
)

Write-Host "$message, $name!"

使用以下命令行来调用这个脚本并传递两个参数:

powershell -ExecutionPolicy RemoteSigned -File .\Greet.ps1 -name "John" -message "Hello"

输出将会是:

Hello, John!

在这个示例中,param 块定义了两个命名参数 $name$message。在脚本中,可以通过这些参数进行操作。使用命名参数时,你可以像上面一样通过索引来获取它们的值,或者直接使用参数的名称来获取它们的值。

shell

Shell 可以通过两种方式传递参数给脚本:

  1. 命令行参数

Shell 脚本可以接受命令行参数,通过 $n 来引用传递给脚本的第 n 个参数,其中 $0 表示脚本本身的名称。例如:

#!/bin/sh
echo "脚本名称为:$0"
echo "第一个参数为:$1"
echo "第二个参数为:$2"
echo "所有参数为:$@"

在命令行执行脚本时,可以输入参数来传递给脚本:

$ ./test.sh foo bar
脚本名称为:./test.sh
第一个参数为:foo
第二个参数为:bar
所有参数为:foo bar
  1. 读取用户输入

除了命令行参数,Shell 脚本还可以从用户处读取输入。使用 read 命令可以实现从标准输入读取用户输入,例如:

#!/bin/sh
echo "请输入您的名字:"
read name
echo "您好,$name!"

执行脚本后,脚本会等待用户输入名字,并根据输入内容输出问候语:

$ ./test.sh
请输入您的名字:
Tom
您好,Tom!

条件语句

cmd

cmd的条件语句有以下几种:

  1. if语句:if语句用来判断某个条件是否成立,如果成立则执行指定的命令。if语句常用的判断条件有文件是否存在、值是否相等等。常见的语法格式如下:
  if [not] exist file command
  if [not] errorlevel number command
  if [not] string1==string2 command
  1. for语句:for语句可以用来循环遍历一组数据,并对每个数据进行相应的操作。常见的语法格式如下:

for %variable in (set) do command [command-parameters]

  1. switch语句:switch语句根据指定的值,选择性地执行某个命令。常见的语法格式如下:

switch value(
case value1 command1
case value2 command2

default commandN
)

  1. while和do-while语句:while语句用于重复执行一组命令,直到满足指定的条件为止;do-while语句与while语句类似,但是它会先执行一次命令,然后再判断条件是否成立。常见的语法格式如下:

while condition do command
do command while condition

这些条件语句可以让cmd在特定的条件下执行不同的命令,从而实现复杂的逻辑处理。

写文件

cmd&shell

在cmd和shell中,可以使用重定向符号来将文本输出到文件中。具体方法如下:

  1. 使用 “>” 符号将文本输出到一个新文件中。例如:
echo "Hello World!" > hello.txt

这将会创建一个新文件 hello.txt,并将文本 “Hello World!” 输出到文件中。

  1. 使用 “>>” 符号可以将文本追加到已有的文件末尾。例如:
echo "This is a new line" >> hello.txt

这将会在 hello.txt 文件的最后一行追加文本 “This is a new line”。

需要注意的是,如果文件不存在,使用 “>” 符号会创建一个新文件;如果文件已存在,会将原文件内容覆盖。而使用 “>>” 符号则会将新文本追加到文件末尾,不会影响原有内容。

python

使用 with open 可以非常方便地将文本内容写入文件,同时还可以确保文件最终能够正确地关闭,避免未关闭文件导致的问题。具体语法如下:

with open('file.txt', 'w') as f:
    f.write('Hello World!')

上面的代码就将字符串 “Hello World!” 写入了名为 “file.txt” 的文件中,并且该文件已自动关闭。如果想要追加文本内容,则将第二个参数改为 “a” 即可。

with open('file.txt', 'a') as f:
    f.write('Hello Python!')

这里的 with open 语句称为上下文管理器,它在执行完语句块后会自动调用文件对象的 .close() 方法关闭文件。这个方法是文件对象的一个内置方法,作用是关闭打开的文件,释放系统资源。如果不使用上下文管理器,则需要在代码末尾手动关闭文件,否则文件会一直保持打开状态。

读文件

cmd

读取文本:
使用type命令可以读取文本文件的内容,语法如下:

type 文件名

例如,读取一个名为test.txt的文本文件:

type test.txt

读取指定行:
使用for /f命令可以读取文本文件的指定行,语法如下:

for /f "tokens=1* delims=:" %%a in ('findstr /n "^" 文件名') do if "%%a"=="指定行号" echo %%b

其中,“tokens=1*”表示将行号和行内容分别存储到变量%%a和%%b中,“delims=:”表示使用冒号作为分隔符,“findstr /n”命令会将每行的行号添加到行首。例如,读取test.txt的第3行:

for /f "tokens=1* delims=:" %a in ('findstr /n "^" test.txt') do if "%a"=="3" echo %b

shell

读取文本文件的内容可以使用以下命令:

cat filename.txt

其中,filename.txt为需要读取的文本文件名。

指定行读取文本文件内容可以使用以下命令:

sed -n '行号p' filename.txt

其中,行号为需要读取的行的行号,可以是单个行号,也可以是一段行号范围。例如:

sed -n '10p' filename.txt  #读取第10行内容

sed -n '5,10p' filename.txt  #读取第5到10行内容

python

可以使用以下代码:

with open('filename.txt', 'r') as f:
    content = f.read()
    print(content)

在with语句的作用域内,打开文件并赋值给变量f。使用f.read()方法读取文件内容,并将其赋值给变量content。最后打印content。当with语句执行完毕时,文件自动关闭。
可以使用以下代码读取文本文件的第一行

with open("filename.txt", "r") as f:
    first_line = f.readline()
    print(first_line)

其中,“filename.txt” 是你要读取的文本文件的名称,“r” 表示读取模式。在 with 块中,调用 readline() 方法来读取文件的第一行,然后将其保存在 first_line 变量中,并打印输出。

CSV

python

读取csv文件可以使用pandas库中的read_csv函数,可以通过指定参数来读取指定的列和行。

读取指定列:

import pandas as pd

# 读取指定列
df = pd.read_csv('test.csv', usecols=['col1', 'col2'])
print(df.head())

读取指定行:

import pandas as pd

# 读取指定行
df = pd.read_csv('test.csv', nrows=10)
print(df.head())

读取指定行和列:

import pandas as pd

# 读取指定行和列
df = pd.read_csv('test.csv', usecols=['col1', 'col2'], nrows=10)
print(df.head())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值