拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1424858999/
【.cmd】 バッチファイルスクリプト %12 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1489207631/
それ以前の過去スレ
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc12.2ch.net/test/read.cgi/tech/1197881068/
%1 http://pc11.2ch.net/test/read.cgi/tech/1178281991/
【.cmd】 バッチファイルスクリプト %13 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
2018/11/21(水) 14:52:07.84ID:v84I4o+L
185デフォルトの名無しさん
2019/04/21(日) 00:17:28.92ID:Aqd0ZKZB forfilesは遅いこと
フォルダのファイル数が多いと極端に遅くなる
フォルダのファイル数が多いと極端に遅くなる
186デフォルトの名無しさん
2019/04/27(土) 20:18:12.49ID:SEUESNkj >>174
exit で終了しないと不味いな…
exit で終了しないと不味いな…
187デフォルトの名無しさん
2019/05/07(火) 09:53:38.49ID:3q/iti6Z バッチとは違うけど、Microsoftさまの新しいターミナルアプリ「Windows Terminal」
https://forest.watch.impress.co.jp/docs/news/1183011.html
期待しても良いのかしら
https://forest.watch.impress.co.jp/docs/news/1183011.html
期待しても良いのかしら
188デフォルトの名無しさん
2019/05/08(水) 22:44:07.08ID:6yW2addd >>187
windows10のみだと俺は使えないや
windows10のみだと俺は使えないや
189デフォルトの名無しさん
2019/05/08(水) 22:45:41.01ID:o7I87B0d >>188
そりゃMacやLinuxでも使えるようにする性格のアプリではないだろ
そりゃMacやLinuxでも使えるようにする性格のアプリではないだろ
190デフォルトの名無しさん
2019/05/08(水) 23:18:47.67ID:6yW2addd191デフォルトの名無しさん
2019/05/08(水) 23:59:34.57ID:PAJNmCOy >>190
MacやLinuxで使えないから嫌だってお前は言ってるんだよ
MacやLinuxで使えないから嫌だってお前は言ってるんだよ
192デフォルトの名無しさん
2019/05/09(木) 00:09:50.10ID:Q5GOiLDw build 10.0.18362.0以上でVS2017必要みたいね
Win8とかじゃ使えない
Win8とかじゃ使えない
193デフォルトの名無しさん
2019/05/09(木) 00:35:06.30ID:e/QFUb7b win7/8.1は切捨てか
さすがMS
さすがMS
194デフォルトの名無しさん
2019/05/09(木) 00:47:39.20ID:W7EsCFlC >>193
サポート終了って言ってるんだから当たり前じゃね?
サポート終了って言ってるんだから当たり前じゃね?
195デフォルトの名無しさん
2019/05/18(土) 02:08:44.94ID:5JVQU2Kx スレチかもなのですが、「コアを吐く」ってどういう意味なのでしょうか?
196デフォルトの名無しさん
2019/05/18(土) 02:12:53.15ID:ChT5ZnKi コアダンプのことじゃね
197デフォルトの名無しさん
2019/05/19(日) 00:27:10.87ID:p20+5ZYI Win10で、.(ドット)から始まる4文字以上のフォルダを再帰的に削除したいのですがうまくいきません
for /d /r %%d in (.????*) do rmdir /s /q "%%d"
フォルダ名をスペースおきに書くと削除できますがワイルドカードを使って処理できないものでしょうか
for /d /r %%d in (.????*) do rmdir /s /q "%%d"
フォルダ名をスペースおきに書くと削除できますがワイルドカードを使って処理できないものでしょうか
198デフォルトの名無しさん
2019/05/19(日) 11:10:45.58ID:TZwQ5fCi for /f %%d in ('dir /s /b ^| findstr \\\.....') do rmdir /s /q "%%d"
とか?
とか?
199デフォルトの名無しさん
2019/05/19(日) 11:21:46.43ID:TZwQ5fCi >>198
dir /s /b /ad だった
dir /s /b /ad だった
200デフォルトの名無しさん
2019/05/19(日) 11:40:23.60ID:C4jenAHt >>197
for /d /r %%i in (.*) do set "a=%%~fi" & call :x "%%a%%"
pause & goto :eof
:x
set "b=%~nx1"
if not "%b:~4,1%"=="" rd /s /q %1
for /d /r %%i in (.*) do set "a=%%~fi" & call :x "%%a%%"
pause & goto :eof
:x
set "b=%~nx1"
if not "%b:~4,1%"=="" rd /s /q %1
201197
2019/05/19(日) 12:35:02.55ID:p20+5ZYI202デフォルトの名無しさん
2019/05/19(日) 13:00:03.54ID:C4jenAHt203デフォルトの名無しさん
2019/05/19(日) 13:23:52.91ID:C4jenAHt 分かった
隠し属性かよ
隠し属性かよ
204デフォルトの名無しさん
2019/05/20(月) 07:05:59.13ID:/nt8UTBS for /f "delims=" %%i in ('dir/adh/s/b .*') do (
set "a=%%~nxi" & call set "a=%%a:~4,1%%"
if defined a if exist "%%i" rd/s/q "%%i")
set "a=%%~nxi" & call set "a=%%a:~4,1%%"
if defined a if exist "%%i" rd/s/q "%%i")
205デフォルトの名無しさん
2019/05/26(日) 10:45:56.66ID:nyCVecKy 7-Zipスレからこちらに誘導されてきました
バッチファイルを実行して
指定したフォルダを7z圧縮し別の指定した場所へ保存する方法教えてください
バッチファイルを実行して
指定したフォルダを7z圧縮し別の指定した場所へ保存する方法教えてください
206デフォルトの名無しさん
2019/05/26(日) 10:55:25.50ID:QHGhwB6i >>205
7-zipのコマンドラインオプションみましたか?
7-zipのコマンドラインオプションみましたか?
207デフォルトの名無しさん
2019/05/26(日) 11:03:44.74ID:nyCVecKy >>206
見ていません
見ていません
208デフォルトの名無しさん
2019/05/26(日) 11:10:19.45ID:nyCVecKy >>206
今見ています
今見ています
209デフォルトの名無しさん
2019/05/26(日) 17:24:55.92ID:iePtiDR/ >>205
7-Zip のパスは自分の環境に合わせる
@echo off
path C:\WINDOWS\system32;C:\WINDOWS;
path C:\Program Files (x86)\7-zip;%path%
set /p i=圧縮するフォルダのフルパス=
set "i=%i:"=%"
set /p o=書庫を作成するフォルダのフルパス=
set "o=%o:"=%"
set /p n=書庫名(拡張子なし)=
for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA"
7z a "%o%\%n%.7z" "%d%"
pause
7-Zip のパスは自分の環境に合わせる
@echo off
path C:\WINDOWS\system32;C:\WINDOWS;
path C:\Program Files (x86)\7-zip;%path%
set /p i=圧縮するフォルダのフルパス=
set "i=%i:"=%"
set /p o=書庫を作成するフォルダのフルパス=
set "o=%o:"=%"
set /p n=書庫名(拡張子なし)=
for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA"
7z a "%o%\%n%.7z" "%d%"
pause
210デフォルトの名無しさん
2019/05/26(日) 18:42:28.21ID:nyCVecKy >>209
ありがとうございます
@echo off
path C:\WINDOWS\system32;C:\WINDOWS;
path C:\Program Files\7-Zip;%path%
set /p i=Z:\TE=
set "i=%i:"=%"
set /p o=Z:\zz=
set "o=%o:"=%"
set /p n=a=
for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA"
7z a "%o%\%n%.7z" "%d%"
pause
7-Zip のパス
C:\Program Files\7-Zip
ZドライブTEフォルダを圧縮
Zドライブzzフォルダに作成
書庫名aにしてみましたが動作しませんでした
誤った箇所ありますでしょうか
ありがとうございます
@echo off
path C:\WINDOWS\system32;C:\WINDOWS;
path C:\Program Files\7-Zip;%path%
set /p i=Z:\TE=
set "i=%i:"=%"
set /p o=Z:\zz=
set "o=%o:"=%"
set /p n=a=
for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA"
7z a "%o%\%n%.7z" "%d%"
pause
7-Zip のパス
C:\Program Files\7-Zip
ZドライブTEフォルダを圧縮
Zドライブzzフォルダに作成
書庫名aにしてみましたが動作しませんでした
誤った箇所ありますでしょうか
211デフォルトの名無しさん
2019/05/26(日) 19:22:25.25ID:4n4gfKEy >>210
書き換えないといけないのは7zipのパスのところだけであとのところはいじっちゃだめ
なので↓をメモ帳に貼り付けて適当な名前のbatファイルに保存が正解
@echo off
path C:\WINDOWS\system32;C:\WINDOWS;
path C:\Program Files\7-Zip;%path%
set /p i=圧縮するフォルダのフルパス=
set "i=%i:"=%"
set /p o=書庫を作成するフォルダのフルパス=
set "o=%o:"=%"
set /p n=書庫名(拡張子なし)=
for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA"
7z a "%o%\%n%.7z" "%d%"
pause
書き換えないといけないのは7zipのパスのところだけであとのところはいじっちゃだめ
なので↓をメモ帳に貼り付けて適当な名前のbatファイルに保存が正解
@echo off
path C:\WINDOWS\system32;C:\WINDOWS;
path C:\Program Files\7-Zip;%path%
set /p i=圧縮するフォルダのフルパス=
set "i=%i:"=%"
set /p o=書庫を作成するフォルダのフルパス=
set "o=%o:"=%"
set /p n=書庫名(拡張子なし)=
for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA"
7z a "%o%\%n%.7z" "%d%"
pause
212デフォルトの名無しさん
2019/05/26(日) 19:28:03.67ID:iePtiDR/213デフォルトの名無しさん
2019/05/26(日) 19:35:30.91ID:nyCVecKy214デフォルトの名無しさん
2019/05/30(木) 23:24:33.44ID:D3n586fF CMDの画面でこういうのを入力して実行したら
FOR /L %I IN (1,1,20) DO @CALL ECHO %I
画面の上のタイトルに文字が
うじゃうじゃ出て来るのはなぜ?
FOR /L %I IN (1,1,20) DO @CALL ECHO %I
画面の上のタイトルに文字が
うじゃうじゃ出て来るのはなぜ?
215デフォルトの名無しさん
2019/06/01(土) 22:51:37.17ID:cR7U/Ve2 最近の発見
remの前に空白をおける
: でラベルを示すが、:の前後に複数の空白、タブ、全角空白があってもよい
: タブ abc
またラベルの後の空白以降の文字列は無視するのでコメントを書ける
: abc エラーの場合
まあ、あまり使うところないけど
remの前に空白をおける
: でラベルを示すが、:の前後に複数の空白、タブ、全角空白があってもよい
: タブ abc
またラベルの後の空白以降の文字列は無視するのでコメントを書ける
: abc エラーの場合
まあ、あまり使うところないけど
216デフォルトの名無しさん
2019/06/02(日) 00:30:45.28ID:0ZBCelud 最後のは割と便利そうだけど
現場だとコメントはREM使えっていうコーディング規約に阻まれそうだw
現場だとコメントはREM使えっていうコーディング規約に阻まれそうだw
217デフォルトの名無しさん
2019/06/02(日) 03:07:05.57ID:rFF/uYB6 >>214
そもそも call の引数はバッチファイル名かラベルだ。
それ以外の、内部コマンドや外部コマンドじゃない。
そんな使い方、help のどこにも書いてない。
一見、正常に動作している様に見えるが、
内部では子プロセスが異常終了している。
だからタイトル名に子プロセスの残骸が残る。
call set なども動作はするが邪道。
そもそも call の引数はバッチファイル名かラベルだ。
それ以外の、内部コマンドや外部コマンドじゃない。
そんな使い方、help のどこにも書いてない。
一見、正常に動作している様に見えるが、
内部では子プロセスが異常終了している。
だからタイトル名に子プロセスの残骸が残る。
call set なども動作はするが邪道。
218デフォルトの名無しさん
2019/06/04(火) 23:08:45.76ID:YyzuHNes >>215
REM は「コマンド」だから前に空白が置ける。それは当然として。
ラベルをコメント代わりに使うのは止めとけ。
for や if コマンドの中で「インテンドを使って」コメントに使おうとすると弾かれる。
大人はバッチのコメントは REM で書くものだ。
Intel のドライバーインストーラーのバッチは奇麗だと思うぞ。
REM は「コマンド」だから前に空白が置ける。それは当然として。
ラベルをコメント代わりに使うのは止めとけ。
for や if コマンドの中で「インテンドを使って」コメントに使おうとすると弾かれる。
大人はバッチのコメントは REM で書くものだ。
Intel のドライバーインストーラーのバッチは奇麗だと思うぞ。
219デフォルトの名無しさん
2019/06/09(日) 19:33:03.04ID:ESLww06V 変数のサイズの最大値って何バイトなんだろう
@echo off
setlocal enabledelayedexpansion
set "a=x"
for /L %%i in (1,1,12) do set "a=!a!!a!"
set "b=x"
for /L %%i in (1,1,13) do set "b=!b!!b!"
if !a!==!b! (echo "a=b") else echo "a<b"
pause
結果は
"a=b"
@echo off
setlocal enabledelayedexpansion
set "a=x"
for /L %%i in (1,1,12) do set "a=!a!!a!"
set "b=x"
for /L %%i in (1,1,13) do set "b=!b!!b!"
if !a!==!b! (echo "a=b") else echo "a<b"
pause
結果は
"a=b"
220デフォルトの名無しさん
2019/06/09(日) 20:37:25.93ID:ESLww06V221デフォルトの名無しさん
2019/06/10(月) 07:14:20.96ID:24zpPZFc https://www.atmarkit.co.jp/ait/articles/1510/30/news041.html
内部的には1つの変数当たり最大32767文字
コマンドプロンプトの入力行は最大で8190文字
システム環境変数やユーザー環境変数の最大値は約2000文字(setxコマンドでは最大1024文字)
@echo off &setlocal
set a=x
set b=x
set /a i=2
:LOOP
set a=%a%x
echo %i%
if not %a%==%b% (
set b=%a%
set /a i+=1
goto :LOOP
)
pause
速くて正確ではないけど4093くらいで落ちた
コマンドの制限に掛かるみたいやね
内部的には1つの変数当たり最大32767文字
コマンドプロンプトの入力行は最大で8190文字
システム環境変数やユーザー環境変数の最大値は約2000文字(setxコマンドでは最大1024文字)
@echo off &setlocal
set a=x
set b=x
set /a i=2
:LOOP
set a=%a%x
echo %i%
if not %a%==%b% (
set b=%a%
set /a i+=1
goto :LOOP
)
pause
速くて正確ではないけど4093くらいで落ちた
コマンドの制限に掛かるみたいやね
222デフォルトの名無しさん
2019/06/10(月) 07:46:35.61ID:acT05/Jv223デフォルトの名無しさん
2019/06/10(月) 15:28:36.17ID:q9TwxOtc >>221
こういうのって統一して何バイトって決めないとやばくないのかな
windowsバージョン、英語、日本語、ヒンズー語など言語で微妙に変化すると、
おかしなことがおきたり、ウィルスの侵入口に利用される
こういうのって統一して何バイトって決めないとやばくないのかな
windowsバージョン、英語、日本語、ヒンズー語など言語で微妙に変化すると、
おかしなことがおきたり、ウィルスの侵入口に利用される
224デフォルトの名無しさん
2019/06/10(月) 18:52:33.54ID:acT05/Jv 遅延展開では変数名1文字なら値は8189文字まで。半角全角は無関係。
変数名が1文字増えると値の最大値は1文字減る
set "a=!b!" の様に二重引用符で囲むと最大値は2文字減る
遅延じゃないと a=%b% 以外のコマンドラインの文字数分が更に減る
変数 a が5000文字の場合
if %a%==%a% echo ng は落ちるが
if !a!==!a! echo ok は落ちない
変数名が1文字増えると値の最大値は1文字減る
set "a=!b!" の様に二重引用符で囲むと最大値は2文字減る
遅延じゃないと a=%b% 以外のコマンドラインの文字数分が更に減る
変数 a が5000文字の場合
if %a%==%a% echo ng は落ちるが
if !a!==!a! echo ok は落ちない
225デフォルトの名無しさん
2019/06/10(月) 18:58:22.71ID:OlE51f/u226デフォルトの名無しさん
2019/06/10(月) 19:19:36.75ID:acT05/Jv cmdは既に穴だらけなんで
227デフォルトの名無しさん
2019/06/10(月) 20:08:18.95ID:8z0TGIdq 穴だらけなのかもしれないが、外部に開いた穴は無いんで
悪用されるにはその前に侵入を許してしまってる必用がある
まあ侵入されたあとにコマンドプロンプトを使うようなウィルスはあるかは知らないけど
悪用されるにはその前に侵入を許してしまってる必用がある
まあ侵入されたあとにコマンドプロンプトを使うようなウィルスはあるかは知らないけど
228デフォルトの名無しさん
2019/06/11(火) 05:43:03.21ID:mwwG6pNT ワンラインで8kか
フルパス200文字位のファイルを40個D&Dしたらもうパンクか
ヘタレ過ぎる
フルパス200文字位のファイルを40個D&Dしたらもうパンクか
ヘタレ過ぎる
229デフォルトの名無しさん
2019/06/11(火) 16:08:50.98ID:AKGG1UAL 初心者故説明不足でしたらご指摘ください。
調べてもわからなく、ご教示いただけないでしょうか。
やりたいこと
Windowsアップデートのインストール一覧のうち
2019年分のみ抽出したい。
やったこと
一覧を取得するコマンドで情報をテキストファイルに出力。
その後findstrで2019分のみを抽出しようとしたけど
抽出出来なかった。
実行コマンド
Windowsアップデート一覧取得
wmic qfe get InstalledOn,HotFixID > aaa.txt
抽出コマンド
findstr "2019" aaa.txt
抽出コマンド実行後、結果が帰って来ませんでした。
なぜ結果が帰って来ないのかが全くわかりません。
どうか、対処法をご教示いただけないでしょうか。
調べてもわからなく、ご教示いただけないでしょうか。
やりたいこと
Windowsアップデートのインストール一覧のうち
2019年分のみ抽出したい。
やったこと
一覧を取得するコマンドで情報をテキストファイルに出力。
その後findstrで2019分のみを抽出しようとしたけど
抽出出来なかった。
実行コマンド
Windowsアップデート一覧取得
wmic qfe get InstalledOn,HotFixID > aaa.txt
抽出コマンド
findstr "2019" aaa.txt
抽出コマンド実行後、結果が帰って来ませんでした。
なぜ結果が帰って来ないのかが全くわかりません。
どうか、対処法をご教示いただけないでしょうか。
230デフォルトの名無しさん
2019/06/11(火) 16:21:50.48ID:mwwG6pNT ユニコードだからじゃない?
type aaa.txt > aaa1.txt
aaa1.txt でやってみろ
type aaa.txt > aaa1.txt
aaa1.txt でやってみろ
231デフォルトの名無しさん
2019/06/11(火) 16:30:25.48ID:SBjduyI+ wmicはリダイレクトするとUTF16LEになるから
230みたいに文字コード変換するか、パイプで
wmic qfe get InstalledOn,HotFixID | findstr /n "2019"
230みたいに文字コード変換するか、パイプで
wmic qfe get InstalledOn,HotFixID | findstr /n "2019"
232デフォルトの名無しさん
2019/06/11(火) 16:31:56.22ID:SBjduyI+ あ、/n付けちゃったけどまぁいいか
233デフォルトの名無しさん
2019/06/11(火) 16:53:09.70ID:AKGG1UAL234デフォルトの名無しさん
2019/06/13(木) 10:13:44.37ID:P3O2UGUp Explorerから「送る」SendTo で使うバッチの中の pushd "%~dp1" が失敗するケースて有り得る?
送るから使うって事はアクセス出来てるはずなので失敗する事はないと思うんだけど
pushd "%~dp1"||exit とか失敗した場合の処理書いといた方が良いのかな
送るから使うって事はアクセス出来てるはずなので失敗する事はないと思うんだけど
pushd "%~dp1"||exit とか失敗した場合の処理書いといた方が良いのかな
235デフォルトの名無しさん
2019/06/13(木) 12:37:34.91ID:qazE1A0w >>234
パスの中に全角スペースが入っていて半角スペースが入ってない場合なんかは失敗するんじゃないかな
パスの中に全角スペースが入っていて半角スペースが入ってない場合なんかは失敗するんじゃないかな
236デフォルトの名無しさん
2019/06/13(木) 14:43:51.05ID:rRFcU9uI237デフォルトの名無しさん
2019/06/13(木) 14:50:46.43ID:P3O2UGUp >>235
その問題、失念してた。ありがとう
パスに半角スペースが無くて、全角sp" "、コロン","、セミコロン";"、ハット"^"、イコール"=" の何れかが有る時だね
半角sp有る無し関係なく引数全部""括るようにすれば良いのにまだこの問題残ってたんだね
意図しない動作ではあるものの最初にデリミタ文字を含むフォルダの親フォルダにカレント移動して pushd 自体は成功する
pushd が失敗する事例を知っていたら教えて欲しい
この問題は対応面倒なのでパスに半角スペースを含めるようにして対処するよ
その問題、失念してた。ありがとう
パスに半角スペースが無くて、全角sp" "、コロン","、セミコロン";"、ハット"^"、イコール"=" の何れかが有る時だね
半角sp有る無し関係なく引数全部""括るようにすれば良いのにまだこの問題残ってたんだね
意図しない動作ではあるものの最初にデリミタ文字を含むフォルダの親フォルダにカレント移動して pushd 自体は成功する
pushd が失敗する事例を知っていたら教えて欲しい
この問題は対応面倒なのでパスに半角スペースを含めるようにして対処するよ
238デフォルトの名無しさん
2019/06/13(木) 15:04:31.95ID:rRFcU9uI239234
2019/06/13(木) 16:36:42.36ID:P3O2UGUp 送るから使う前提で
pushd "%~dp1"||エラー処理
のエラー処理を書く意味あるかな?てのが聞きたかった事なんだ
まあおまじない的にpause&exitしとくよ。ありがとう
pushd "%~dp1"||エラー処理
のエラー処理を書く意味あるかな?てのが聞きたかった事なんだ
まあおまじない的にpause&exitしとくよ。ありがとう
240デフォルトの名無しさん
2019/06/13(木) 17:10:58.72ID:rRFcU9uI 引数全部で
if "%~dp1"=="%~dp2"
if "%~dp1"=="%~dp3"
if "%~dp1"=="%~dp4"
とか確認すりゃ問題ない
if "%~dp1"=="%~dp2"
if "%~dp1"=="%~dp3"
if "%~dp1"=="%~dp4"
とか確認すりゃ問題ない
241デフォルトの名無しさん
2019/06/13(木) 17:24:03.99ID:rRFcU9uI >>240
でもファイル名使うとダメだな
でもファイル名使うとダメだな
242デフォルトの名無しさん
2019/06/14(金) 15:25:04.04ID:/ScwnRxc 誰もツッコミ無しか
SendTo とか D&D は何もしなくても自動的に
送り側のディレクトリに移動するんだが
SendTo とか D&D は何もしなくても自動的に
送り側のディレクトリに移動するんだが
243デフォルトの名無しさん
2019/06/14(金) 15:52:59.01ID:/ScwnRxc SendTo にバッチ本体じゃなくて
ショートカットを入れたのかね
でもプロパティの作業フォルダを空にすればいい
怪しげな引数を利用するよりマシだろ
ショートカットを入れたのかね
でもプロパティの作業フォルダを空にすればいい
怪しげな引数を利用するよりマシだろ
244デフォルトの名無しさん
2019/06/15(土) 09:44:04.71ID:wrdBniJb 7-ZIPの 7za.exe でワイルドカード使ったときにサブフォルダを除外するにはどうしたらいいでしょうか?
-r-を付けてもなぜか効かないんですが
7za.exe a XXX.zip -r- *
-r-を付けてもなぜか効かないんですが
7za.exe a XXX.zip -r- *
245デフォルトの名無しさん
2019/06/15(土) 12:34:19.95ID:/kIGVJHV >>244
7zaは経験ないが7zと同じだろう
引数に*としたらサブディレクトリも含む
サブディレクトリを指定したら、それ以下の全部を含む
そこでスイッチは関係ない
ファイルだけ圧縮したいなら
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist archive.7z del archive.7z
set a=
setlocal enabledelayedexpansion
for %%i in (*) do set a=!a! "%%i"
7z a archive.7z !a%!
pause
7zaは経験ないが7zと同じだろう
引数に*としたらサブディレクトリも含む
サブディレクトリを指定したら、それ以下の全部を含む
そこでスイッチは関係ない
ファイルだけ圧縮したいなら
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist archive.7z del archive.7z
set a=
setlocal enabledelayedexpansion
for %%i in (*) do set a=!a! "%%i"
7z a archive.7z !a%!
pause
246デフォルトの名無しさん
2019/06/15(土) 12:36:06.42ID:/kIGVJHV ああ、すまん
.zip に置き換えて
.zip に置き換えて
247デフォルトの名無しさん
2019/06/15(土) 13:27:41.74ID:/kIGVJHV >>245はファイル名に!^があると誤動作するので
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist XXX.zip del XXX.zip
for %%i in (*) do 7za a XXX.zip "%%i"
pause
にした方がいいかもね
ちなみにInfo-ZIPのzip.exeでは
zip XXX.zip *
だけでいいが空のサブディレクトリを作成する
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist XXX.zip del XXX.zip
for %%i in (*) do 7za a XXX.zip "%%i"
pause
にした方がいいかもね
ちなみにInfo-ZIPのzip.exeでは
zip XXX.zip *
だけでいいが空のサブディレクトリを作成する
248デフォルトの名無しさん
2019/06/17(月) 08:25:16.99ID:gSWoSWwj .commandでターミナルを開いてpython3 /hoge/test.pyを入力、エンターを送信してpyファイルを実行したいのですがご教授ください。m(_ _)m
echo python3 /hoge/test.pyとするとターミナルに入力はされるのですが、pythonが実行されません。
ちなみに.batでは、
cd C:\hoge\
cmd /k python test.py
でpythonを実行する事ができました。
.commandで同じ事をするにはどうすればいいでしょうか?
echo python3 /hoge/test.pyとするとターミナルに入力はされるのですが、pythonが実行されません。
ちなみに.batでは、
cd C:\hoge\
cmd /k python test.py
でpythonを実行する事ができました。
.commandで同じ事をするにはどうすればいいでしょうか?
249デフォルトの名無しさん
2019/06/17(月) 13:48:44.19ID:gSWoSWwj 248です
解決しました。m(_ _)m
echoなんか付けずに
python3 /hoge/test.py
でpythonが実行できました。ありがとうございます。
解決しました。m(_ _)m
echoなんか付けずに
python3 /hoge/test.py
でpythonが実行できました。ありがとうございます。
250デフォルトの名無しさん
2019/06/17(月) 18:30:49.93ID:/bUEZ7B5 バッチファイルからbeep音を出す
echo ^G >beep.bat
^G は コントロールキーとG
beep.batを実行すると音は出るが、エラーも出るので
type beep.bat
のほうがよい
beep.bat 2>nul
でエラーは消えるはずだが、なぜか音も出ないことがある
こういう基本コマンドがなぜかない
echo ^G >beep.bat
^G は コントロールキーとG
beep.batを実行すると音は出るが、エラーも出るので
type beep.bat
のほうがよい
beep.bat 2>nul
でエラーは消えるはずだが、なぜか音も出ないことがある
こういう基本コマンドがなぜかない
251デフォルトの名無しさん
2019/06/17(月) 21:28:51.00ID:KEFOQI4b >>250
beep.bat
でエラーが出るのは当然
beep.bat の中身は 「あ」 と一文字書いてあるのと同じようなものだから
コマンドになってない
だから
echo ^G> beep.dat
echo type beep.txt> beep.bat
とするか
echo @echo ^G> beep.bat
とすれば
beep.bat実行でエラーは出ない
ちなみに@echoとしてechoの頭に@をつける理由は
そうしないと、
実行コマンドが表示される時点で一回音が鳴り
echo が実行されることによって音が鳴るので
結果として2回音が鳴ることになるため
beep.bat
でエラーが出るのは当然
beep.bat の中身は 「あ」 と一文字書いてあるのと同じようなものだから
コマンドになってない
だから
echo ^G> beep.dat
echo type beep.txt> beep.bat
とするか
echo @echo ^G> beep.bat
とすれば
beep.bat実行でエラーは出ない
ちなみに@echoとしてechoの頭に@をつける理由は
そうしないと、
実行コマンドが表示される時点で一回音が鳴り
echo が実行されることによって音が鳴るので
結果として2回音が鳴ることになるため
252デフォルトの名無しさん
2019/06/17(月) 22:13:21.14ID:KEFOQI4b 無料のエディタでも制御文字を扱えるものがあるので
そういったものを使うと便利かと思います
たとえばNotepad++では制御文字を表示することができます
https://www.howtonote.jp/notepadplusplus/install/index10.html
入力は編集-文字コード表から
サクラエディタは制御文字を入力できるのに表示する方法はわかりませんでした
(自分はユーザではなく詳しくないので実際はあるのかもしれない)
http://sakura-editor.sourceforge.net/htmlhelp/HLP000255.html
そういったものを使うと便利かと思います
たとえばNotepad++では制御文字を表示することができます
https://www.howtonote.jp/notepadplusplus/install/index10.html
入力は編集-文字コード表から
サクラエディタは制御文字を入力できるのに表示する方法はわかりませんでした
(自分はユーザではなく詳しくないので実際はあるのかもしれない)
http://sakura-editor.sourceforge.net/htmlhelp/HLP000255.html
253デフォルトの名無しさん
2019/06/17(月) 22:46:13.03ID:kzHmUXK8 トリッキーだが、コントロールコードを直接書かないで実現することもできるね
ここの過去ログ%11にあったけど
for /f "delims=0" %%I in ('cmd /u /c echo 〇') do set BEL=%%I
echo %BEL%
ここの過去ログ%11にあったけど
for /f "delims=0" %%I in ('cmd /u /c echo 〇') do set BEL=%%I
echo %BEL%
254デフォルトの名無しさん
2019/06/17(月) 23:09:42.80ID:+j+1wiRe バッチにバイナリエディタで入力したら
どんな値でも変数に代入出来るのかな?
どんな値でも変数に代入出来るのかな?
255デフォルトの名無しさん
2019/06/17(月) 23:10:40.48ID:KEFOQI4b256デフォルトの名無しさん
2019/06/18(火) 17:34:44.10ID:eep67jJ0 cls|choice 1>nul 2>nul
257デフォルトの名無しさん
2019/06/18(火) 19:33:08.53ID:KnqBLmEX >>251
なるほど、どっちもありですね
echo ^G> beep.dat
echo type beep.dat> beep.bat
echo @echo ^G> beep.bat
@echo のこんな使い方は初めて見た、知らなかったです
なるほど、どっちもありですね
echo ^G> beep.dat
echo type beep.dat> beep.bat
echo @echo ^G> beep.bat
@echo のこんな使い方は初めて見た、知らなかったです
258デフォルトの名無しさん
2019/06/23(日) 06:51:19.02ID:dygsK1bo Windows Terminal早速試せるみたい。
Microsoft’s new Windows Terminal now available to download for Windows 10 - The Verge
https://www.theverge.com/2019/6/22/18701365/microsoft-windows-terminal-10-download-store-features
Microsoft’s new Windows Terminal now available to download for Windows 10 - The Verge
https://www.theverge.com/2019/6/22/18701365/microsoft-windows-terminal-10-download-store-features
259デフォルトの名無しさん
2019/06/23(日) 12:23:35.72ID:Lc+3aX4/ >>258 そこに書いてある
Microsoftはまた、Linux用のWindows Subsystem(WSL)の
パフォーマンスを向上させるために、
完全なLinuxカーネルをWindows 10に搭載することに取り組んでいます。
こっちの方が気になるなあ
Microsoftはまた、Linux用のWindows Subsystem(WSL)の
パフォーマンスを向上させるために、
完全なLinuxカーネルをWindows 10に搭載することに取り組んでいます。
こっちの方が気になるなあ
260デフォルトの名無しさん
2019/06/23(日) 12:41:20.55ID:8sWJbccc WSL2でしょ
261デフォルトの名無しさん
2019/06/25(火) 00:46:23.52ID:6j3DQJ1O Windows7からWindows10に変えたら、IME単語登録用ソフトのIMECが動かない。
神は死んだ・・・
神は死んだ・・・
262デフォルトの名無しさん
2019/06/25(火) 19:20:48.71ID:sBqqHKRF chcp 65001
if "hoge"=="hoge" (
echo あああ
echo いいい
)
pause
上みたいなbatをUTF-8で保存して実行すると
'o' is not recognized as an internal or external command,
と言われてエラーになるんですが何故ですか?
if "hoge"=="hoge" (
echo あああ
echo いいい
)
pause
上みたいなbatをUTF-8で保存して実行すると
'o' is not recognized as an internal or external command,
と言われてエラーになるんですが何故ですか?
263デフォルトの名無しさん
2019/06/25(火) 19:23:12.67ID:sBqqHKRF echoの前に半角スペース3つです
264デフォルトの名無しさん
2019/06/25(火) 19:52:58.06ID:O4gheXA8 良く分からんが >>258 の奴でやると
もしかしたら上手くいくかもね
もしかしたら上手くいくかもね
265デフォルトの名無しさん
2019/06/25(火) 19:58:43.79ID:O4gheXA8 chcp 65001
if "hoge"=="hoge" (
echo あああ& rem
echo いいい
)
pause
if "hoge"=="hoge" (
echo あああ& rem
echo いいい
)
pause
266デフォルトの名無しさん
2019/06/25(火) 20:17:53.34ID:O4gheXA8 行末が非asciiだと不味いようだ
267デフォルトの名無しさん
2019/06/25(火) 20:18:26.26ID:sBqqHKRF268デフォルトの名無しさん
2019/06/25(火) 20:34:02.78ID:O4gheXA8 上手く動作しないという事はバグじゃないですかね
それ以上はcmdの作者じゃないので分からん
それ以上はcmdの作者じゃないので分からん
269デフォルトの名無しさん
2019/06/25(火) 20:49:18.67ID:yTOc80/J そもそもUTF-8保存バッチなんてまともに動くの見た事無い。
バッチはUS-AsciiかシフトJIS保存が安全。いくらchcpでコードページが動かせようとも
バッチはUS-AsciiかシフトJIS保存が安全。いくらchcpでコードページが動かせようとも
270デフォルトの名無しさん
2019/06/25(火) 20:51:13.72ID:yTOc80/J "シフトJIS(932) だけ? いいえ、そんなことはありません。例えば、EUC-JP(20932) も可能です。しかし、Unicode(1200)、UTF-7(65000)、UTF-8(65001)、JIS(50220) はダメです。
なので、実際上?は、シフトJIS(932) だけのようなものです。"
http://scripting.cocolog-nifty.com/blog/2008/12/post-38f8.html
なので、実際上?は、シフトJIS(932) だけのようなものです。"
http://scripting.cocolog-nifty.com/blog/2008/12/post-38f8.html
271デフォルトの名無しさん
2019/06/25(火) 21:18:10.64ID:O4gheXA8 ユニコードでしか表示できない文字を表示したいならともかく
"あああ" とか "いいい" じゃ全く意味が無いな
"あああ" とか "いいい" じゃ全く意味が無いな
272デフォルトの名無しさん
2019/06/26(水) 07:19:54.19ID:/FHvjGPn やはりbatをUTF-8で動かすと色々不安定みたいですね
素直にShift_JISで書くことにします
素直にShift_JISで書くことにします
273デフォルトの名無しさん
2019/06/26(水) 08:01:27.89ID:5bijRuYR ASCIIで書いてもええんやで?
274デフォルトの名無しさん
2019/06/26(水) 08:13:25.58ID:QearoGxm Asciiで"あああ"や"いいい"が表せるかバカ
275デフォルトの名無しさん
2019/06/26(水) 14:39:32.78ID:wh3oZ78w シフトJISで表せない文字の例
@echo off
chcp 65000 > nul
set a=+nddRZwDA-
chcp 932 > nul
set a1=%a:~0,1%
set a2=%a:~1,1%
set a3=%a:~2,1%
echo 森%a1%外の「%a1%」
echo %a2%田百閧フ「%a2%」
echo アクセント符号付きのアルファベット「%a3%」
pause > nul
@echo off
chcp 65000 > nul
set a=+nddRZwDA-
chcp 932 > nul
set a1=%a:~0,1%
set a2=%a:~1,1%
set a3=%a:~2,1%
echo 森%a1%外の「%a1%」
echo %a2%田百閧フ「%a2%」
echo アクセント符号付きのアルファベット「%a3%」
pause > nul
276デフォルトの名無しさん
2019/06/26(水) 19:26:37.84ID:jdth62TN ハードコーディングする必要ないだろ…
277デフォルトの名無しさん
2019/06/26(水) 20:16:33.91ID:wh3oZ78w ユニコードのバッチでいいなら必要ないな
echoは行末に半角スペース付けると多分ok
setは二重引用符で囲めばいい
echoは行末に半角スペース付けると多分ok
setは二重引用符で囲めばいい
278デフォルトの名無しさん
2019/06/27(木) 00:26:23.36ID:65pELY4n 会得したところで今後の人生に役に立たない、もしくは自分の仕事を受け継いだ「標準的な知識の」人間に理解できないことはしない方がいい。
一子相伝の拳法とかじゃねーんだから。
バッチスクリプトに限らず、仕事でそういうことを意識できない奴は、大抵、後から見て自分自身でも読めないコードを書くものだ。
一子相伝の拳法とかじゃねーんだから。
バッチスクリプトに限らず、仕事でそういうことを意識できない奴は、大抵、後から見て自分自身でも読めないコードを書くものだ。
279デフォルトの名無しさん
2019/06/27(木) 00:27:58.62ID:65pELY4n このスクリプトは自分で終わり…
とかいう書き捨てスクリプトなら大いにやって良いと思う。
使い終わったらちゃんと捨てとけよ。
とかいう書き捨てスクリプトなら大いにやって良いと思う。
使い終わったらちゃんと捨てとけよ。
280デフォルトの名無しさん
2019/06/27(木) 04:32:59.89ID:41DSIiqO この 低レベルに合わせる事こそ唯一の原則 みたいな風潮すごいイヤ
こんなとこまで啓蒙しなくていいよ気持ち悪い
こんなとこまで啓蒙しなくていいよ気持ち悪い
281デフォルトの名無しさん
2019/06/27(木) 04:53:05.65ID:6UZ42pkx282279
2019/06/28(金) 00:34:45.44ID:khpSyJhs >>280
低レベルに合わせるわけじゃねーよ。
現代的なスクリプト言語を学んできたような人間に対して
「バッチスクリプトだけで通じる特殊で小賢しいハック」
を読ませたり書かせたりするべきじゃない、自分だけに留めとけ、結局誰得になる、って話が何故分からないかな?
今日も
「文字列にASCIIの制御コードを挟めばテスト環境でこの処理通ったんでいいでしょ」
なんつったアホンダラを叱りつけたところだ。
「そのコードが何を意味してるか分かる?」と聞いたら「空白です」だとよ。そりゃ、制御コードは「お前のエディタでは」見えないよ。アホか。
制御コードがテスト環境と違う実環境でどう解釈されるか分かったもんじゃないから却下した。
実際、実環境でこっそりテストしてみたらやっぱり処理はコケた。
低レベルに合わせるわけじゃねーよ。
現代的なスクリプト言語を学んできたような人間に対して
「バッチスクリプトだけで通じる特殊で小賢しいハック」
を読ませたり書かせたりするべきじゃない、自分だけに留めとけ、結局誰得になる、って話が何故分からないかな?
今日も
「文字列にASCIIの制御コードを挟めばテスト環境でこの処理通ったんでいいでしょ」
なんつったアホンダラを叱りつけたところだ。
「そのコードが何を意味してるか分かる?」と聞いたら「空白です」だとよ。そりゃ、制御コードは「お前のエディタでは」見えないよ。アホか。
制御コードがテスト環境と違う実環境でどう解釈されるか分かったもんじゃないから却下した。
実際、実環境でこっそりテストしてみたらやっぱり処理はコケた。
283279
2019/06/28(金) 00:39:45.58ID:khpSyJhs で、バッチにもイディオムがある。
「AをしたいときはBと書け」ってやつ。
そういうものは、たとえ現代的なスクリプト言語とは感覚がかけ離れていてもバッチを書くなら「嫌でも」学習せねばならない。
つまり、
・言語や環境が想定している範囲内ならやってよし。むしろやれ。
・範囲外ならやるな。やるなら自己責任で他人に迷惑を掛けない程度に。
ということ。
これはどんな言語やシステムにも言えること。
「AをしたいときはBと書け」ってやつ。
そういうものは、たとえ現代的なスクリプト言語とは感覚がかけ離れていてもバッチを書くなら「嫌でも」学習せねばならない。
つまり、
・言語や環境が想定している範囲内ならやってよし。むしろやれ。
・範囲外ならやるな。やるなら自己責任で他人に迷惑を掛けない程度に。
ということ。
これはどんな言語やシステムにも言えること。
284279
2019/06/28(金) 00:51:59.74ID:khpSyJhs もっと言うと、何かを開発するときにまず最初にやることってのが
「この言語や環境はどこまで想定しているのかを調べる」
だったりする。
自分のやりたいことに沿ってくれるかくれないのか。
くれないなら処理の一部だけやらせるに留めるなり、最初から使わないなり、そういう選択をする。
言語や環境に縛りがある場合なら、責任者の言質を取るなり、書面で誓約を取ってから作る。
見ず知らずの他人が意味も訳も分からないトリッキーなコードをメンテさせられて苦しむのを想像できないならいくらでもトリッキーにやればいい。
「このコード書いた奴、死ねばいいのに」って言われても俺には関係ない、くらいの根性腐った奴ならそうすればいい。
「この言語や環境はどこまで想定しているのかを調べる」
だったりする。
自分のやりたいことに沿ってくれるかくれないのか。
くれないなら処理の一部だけやらせるに留めるなり、最初から使わないなり、そういう選択をする。
言語や環境に縛りがある場合なら、責任者の言質を取るなり、書面で誓約を取ってから作る。
見ず知らずの他人が意味も訳も分からないトリッキーなコードをメンテさせられて苦しむのを想像できないならいくらでもトリッキーにやればいい。
「このコード書いた奴、死ねばいいのに」って言われても俺には関係ない、くらいの根性腐った奴ならそうすればいい。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 【悲報】ジャップ、どうやら中国が一方的に戦争仕掛けてくると思ってる模様😰 [616817505]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【高市速報】明日から中国からの輸入が停止すれば2ヵ月で国内の生産業に53兆円の損失発生 [931948549]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
