批处理中扩展解释%~的相关知识和用法,并给出示例和实际运行结果展示

批处理中扩展解释%~的相关知识和用法,并给出示例和实际运行结果展示

在批处理脚本中,%~是一个特殊的前缀,用于对参数和变量进行字符串处理。这个前缀后面可以跟着不同的字符,用于执行不同的操作。下面是一些常见的用法:

  1. %~f1 - 返回参数或变量的完整路径(包括驱动器和目录)。 示例:
@echo off
set FILENAME=%~f1
echo 完整路径:%FILENAME%

运行结果示例:

完整路径:C:\Users\User\Desktop\example.txt
  1. %~dp1 - 返回参数或变量的驱动器和目录路径。 示例:
@echo off
set FILENAME=%~dp1
echo 驱动器和目录:%FILENAME%

运行结果示例:

驱动器和目录:C:\Users\User\Desktop\
  1. %~n1 - 返回参数或变量的文件名部分(不包括路径和扩展名)。 示例:
@echo off
set FILENAME=%~n1
echo 文件名:%FILENAME%

运行结果示例:

文件名:example
  1. %~x1 - 返回参数或变量的扩展名部分。 示例:
@echo off
set FILENAME=%~x1
echo 扩展名:%FILENAME%

运行结果示例:

扩展名:.txt

这些只是%~前缀的一些常见用法,你可以根据需要进行组合和调整。

当使用%~前缀时,还有一些其他的字符可以用于字符串处理。下面是一些常见的用法:

  1. %~nx1 - 返回参数或变量的文件名及扩展名部分。 示例:
@echo off
set FILENAME=%~nx1
echo 文件名及扩展名:%FILENAME%

运行结果示例:

文件名及扩展名:example.txt
  1. %~s1 - 返回参数或变量的短文件名形式。 示例:
@echo off
set FILENAME=%~s1
echo 短文件名:%FILENAME%

运行结果示例:

短文件名:C:\PROGRA~1\EXAMPLE.TXT
  1. %~dpnx1 - 返回参数或变量的驱动器、目录、文件名及扩展名部分。 示例:
@echo off
set FILENAME=%~dpnx1
echo 驱动器、目录、文件名及扩展名:%FILENAME%

运行结果示例:

驱动器、目录、文件名及扩展名:C:\Users\User\Desktop\example.txt
  1. %~zi - 返回参数或变量的文件大小(字节数)。 示例:
@echo off
set FILENAME=example.txt
for %%F in (%FILENAME%) do set SIZE=%%~zi
echo 文件大小:%SIZE% 字节

运行结果示例:

文件大小:1024 字节

这些示例展示了%~前缀的更多用法,你可以根据需要选择适合的字符组合。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这是一个Flink批处理示例:import org.apache.flink.api.java.ExecutionEnvironment// 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment// 读取文件 val text = env.readTextFile("hdfs:///input/input.txt")// 调用map方法,处理数据 val counts = text.flatMap{ _.toLowerCase.split("\\W+") filter { _.nonEmpty } } .map { (_, 1) } .groupBy(0) .sum(1)// 将结果输出到文件 counts.writeAsCsv("hdfs:///output/output.txt")// 执行 env.execute("Flink Batch WordCount Example") ### 回答2: package com.example.flinkdemo; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.util.Collector; public class BatchWordCount { public static void main(String[] args) throws Exception { // 创建执行环境 ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); // 定义输入数据集 String inputPath = "path/to/input/file.txt"; DataSet<String> text = env.readTextFile(inputPath); // 转换操作:切分单词,计数为1 DataSet<Tuple2<String, Integer>> counts = text.flatMap(new Tokenizer()) .groupBy(0) .sum(1); // 输出结果 counts.print(); } // 自定义切分单词函数 public static final class Tokenizer implements FlatMapFunction<String, Tuple2<String, Integer>> { @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) { // 切分字符串为单词 String[] words = value.toLowerCase().split(" "); // 遍历每个单词,发送到下游 for (String word : words) { if (word.length() > 0) { out.collect(new Tuple2<>(word, 1)); } } } } } 上述代码演示了一个简单的Flink批处理应用程序,用于统计文本文件单词出现的次数。首先,从指定的输入路径读取文本文件。接下来,使用自定义的切分单词函数Tokenizer对文本进行处理,将每个单词切分出来,并和计数为1的元组一起发送给下游。最后,通过按照单词进行分组和求和操作,统计每个单词出现的次数。最终的结果通过print函数输出。 ### 回答3: Flink是一个可扩展且高性能的流处理框架,它也支持批处理作业。下面给你一个简单的Flink批处理的demo示例。 首先,你需要创建一个Flink批处理作业,该作业将处理一些数据并输出结果。我们假设你要对一个文本文件的单词进行计数。 首先,你需要导入Flink的相关库: ```java import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.tuple.Tuple2; ``` 然后,你可以编写批处理的主要逻辑: ```java public class WordCountBatchJob { public static void main(String[] args) throws Exception { // 创建执行环境 ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); // 加载文本文件数据 String inputPath = "path/to/input/file"; DataSet<String> text = env.readTextFile(inputPath); // 执行单词计数逻辑 DataSet<Tuple2<String, Integer>> counts = text .flatMap((String line, Collector<Tuple2<String, Integer>> out) -> { String[] words = line.split(" "); for (String word : words) { out.collect(new Tuple2<>(word, 1)); } }) .groupBy(0) .sum(1); // 打印结果 counts.print(); } } ``` 在上述示例,我们首先创建了一个ExecutionEnvironment对象,它是Flink批处理作业的入口。 然后,我们使用readTextFile()方法来加载文本文件的数据。你需要替换`path/to/input/file`为你实际的文本文件路径。 接下来,我们对文本的每一行进行拆分,并将每个单词映射为`(word, 1)`的键值对。然后,我们根据单词进行分组,计算每个单词出现的次数。 最后,我们使用print()方法打印计数结果。 这是一个非常简单的Flink批处理作业demo示例。你可以根据实际需求,添加更复杂的逻辑来处理和转换数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

《代码爱好者》

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值